package com.wms_main.service.controller;

import com.wms_main.model.dto.query.UserQuery;
import com.wms_main.model.dto.query.UserUpdateRequest;
import com.wms_main.model.dto.response.wms.BaseWmsApiResponse;
import com.wms_main.model.dto.response.wms.WmsApiResponse;
import com.wms_main.model.vo.wms.PageVo;
import com.wms_main.model.vo.wms.UserVo;

/**
 * 用户控制类服务
 */
public interface IUserControllerService {

    /**
     * 查询用户列表
     * @param userQuery 查询参数
     * @return 查询结果
     */
    WmsApiResponse<PageVo<UserVo>> getUserList(UserQuery userQuery);


    /**
     * 新增用户信息
     * @param userUpdateRequest 新增用户信息请求
     * @return 新增结果
     */
    BaseWmsApiResponse addUserInfo(UserUpdateRequest userUpdateRequest);


    /**
     * 删除用户信息
     * @param userUpdateRequest 删除用户信息请求
     * @return 删除结果
     */
    BaseWmsApiResponse deleteUserInfo(UserUpdateRequest userUpdateRequest);


    /**
     * 修改用户信息
     * @param userUpdateRequest 修改用户信息请求
     * @return 修改结果
     */
    BaseWmsApiResponse updateUserInfo(UserUpdateRequest userUpdateRequest);

    /**
     * 修改用户密码
     * @param userUpdateRequest 密码修改参数
     * @return 修改结果
     */
    BaseWmsApiResponse changePassword(UserUpdateRequest userUpdateRequest);


    BaseWmsApiResponse setUserPermission(UserUpdateRequest userUpdateRequest);
    BaseWmsApiResponse getUserPermission(UserUpdateRequest userUpdateRequest);

}
