package cn.qinys.platform.upms.api.service;

import cn.qinys.platform.upms.api.req.*;
import cn.qinys.platform.upms.api.resp.UserAccountInfoResp;
import cn.qinys.platform.upms.api.resp.UserDetailResp;
import cn.qinys.platform.upms.api.resp.UserPageResp;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;


/**
 * Description:
 *
 * @author tanlie
 * Date: 2024/2/26 17:37
 */
public interface IUserService {

    /**
     * 后台登录用户分页
     *
     * @param req
     * @return
     */
    Page<UserPageResp> getUserPage(UserPageReq req);

    /**
     * 新增用户
     *
     * @param req
     */
    void createUser(UserCreateReq req);


    /**
     * 修改用户
     *
     * @param req
     */
    void updateUser(UserUpdateReq req);

    /**
     * 用户删除
     *
     * @param req
     */
    void removeUser(UserRemoveReq req);

    /**
     * 获取账号相关信息
     *
     * @param id
     * @return
     */
    UserAccountInfoResp getAccountInfo(String id);

    /**
     * 用户角色操作
     *
     * @param req
     */
    void userRoleAdd(UserRoleOperationReq req);

    /**
     * 用户角色操作
     *
     * @param req
     */
    void userRoleDelete(UserRoleOperationReq req);

    /**
     * 修改用户锁定状态
     *
     * @param req
     */
    void changeLock(UserChangeLockReq req);

    /**
     * 修改密码
     *
     * @param req
     */
    void resetPassword(UserResetPasswordReq req);

    /**
     * 用户详情
     *
     * @param userId
     */
    UserDetailResp userDetailById(String userId);
}
