package com.hertz.modules.system.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.hertz.modules.system.entity.SysRole;
import com.hertz.modules.system.dto.AuthDtos;
import com.hertz.modules.system.entity.SysUser;
import java.util.List;

public interface UserService {
  SysUser register(String username, String rawPassword, String nickname);

  SysUser findByUsername(String username);

  IPage<SysUser> pageUsers(int page, int size, String keyword);

  void createUser(SysUser user);

  void updateUser(SysUser user);

  void updateProfile(Long userId, AuthDtos.UpdateProfileRequest req);

  void updatePassword(Long userId, AuthDtos.UpdatePasswordRequest req);

  void deleteUser(Long id);

  void deleteUsers(List<Long> ids);

  void updateUserRoles(long userId, List<Long> roleIds);

  List<Long> getUserRoleIds(long userId);

  List<SysRole> getUserRoles(long userId);
}

