using HoneyBox.Admin.Models.AdminUser;
using HoneyBox.Admin.Models.Common;
namespace HoneyBox.Admin.Services;
///
/// 管理员服务接口
///
public interface IAdminUserService
{
///
/// 获取管理员分页列表
///
/// 查询请求
/// 分页结果
Task> GetListAsync(AdminUserQueryRequest request);
///
/// 根据ID获取管理员详情
///
/// 管理员ID
/// 管理员详情
Task GetByIdAsync(long id);
///
/// 创建管理员
///
/// 创建请求
/// 创建人ID
/// 新管理员ID
Task CreateAsync(CreateAdminUserRequest request, long? createdBy = null);
///
/// 更新管理员
///
/// 管理员ID
/// 更新请求
Task UpdateAsync(long id, UpdateAdminUserRequest request);
///
/// 删除管理员
///
/// 管理员ID
Task DeleteAsync(long id);
///
/// 获取管理员已分配的角色ID列表
///
/// 管理员ID
/// 角色ID列表
Task> GetRoleIdsAsync(long userId);
///
/// 分配角色给管理员
///
/// 管理员ID
/// 角色ID列表
Task AssignRolesAsync(long userId, List roleIds);
///
/// 获取管理员已分配的专属菜单ID列表
///
/// 管理员ID
/// 菜单ID列表
Task> GetMenuIdsAsync(long userId);
///
/// 分配用户专属菜单
///
/// 管理员ID
/// 菜单ID列表
Task AssignMenusAsync(long userId, List menuIds);
///
/// 分配部门
///
/// 管理员ID
/// 部门ID
Task AssignDepartmentAsync(long userId, long? departmentId);
///
/// 设置管理员状态
///
/// 管理员ID
/// 是否启用
Task SetStatusAsync(long userId, bool enabled);
///
/// 重置密码
///
/// 管理员ID
/// 新密码
Task ResetPasswordAsync(long userId, string newPassword);
}