using Model;
using Model.Dto.System;
using SqlSugar;
using System.Collections.Generic;
using System.Threading.Tasks;
namespace Service.Interface
{
///
/// 用户管理 服务接口
///
public interface IUserService
{
/// 分页查询用户列表(关键字匹配用户名/姓名,可按角色、组织节点筛选;受数据范围约束)
Task>> GetPagedAsync(int pageIndex, int pageSize, RefAsync total, string? keyword = null, long? roleId = null, long? orgId = null);
Task> GetByIdAsync(long id);
/// 新增用户(校验用户名唯一,密码必填,可同时分配角色)
Task> AddAsync(UserDto dto);
/// 修改用户(不改密码,角色走 AssignRoles)
Task> UpdateAsync(UserDto dto);
/// 删除用户(软删,同时清理角色关联)
Task DeleteAsync(long id);
/// 分配角色(全量覆盖该用户的角色关联)
Task AssignRolesAsync(long userId, List roleIds);
/// 管理员重置用户密码
Task ResetPasswordAsync(long userId, string newPassword);
/// 启用/禁用用户
Task SetEnabledAsync(long userId, bool enabled);
/// 用户下拉选项
Task>> GetOptionsAsync();
}
}