using OrpaonVision.Core.Results;
using OrpaonVision.Core.Security.Contracts;
using OrpaonVision.Core.Security.Contracts.Queries;
namespace OrpaonVision.Core.Security;
///
/// 用户应用服务接口。
///
public interface IUserAppService
{
///
/// 创建用户。
///
/// 创建用户命令。
/// 取消令牌。
/// 用户ID。
Task> CreateAsync(Contracts.Commands.CreateUserCommand command, CancellationToken cancellationToken = default);
///
/// 更新用户。
///
/// 更新用户命令。
/// 取消令牌。
/// 操作结果。
Task UpdateAsync(Contracts.Commands.UpdateUserCommand command, CancellationToken cancellationToken = default);
///
/// 删除用户。
///
/// 删除用户命令。
/// 取消令牌。
/// 操作结果。
Task DeleteAsync(Contracts.Commands.DeleteUserCommand command, CancellationToken cancellationToken = default);
///
/// 获取用户详情。
///
/// 用户ID。
/// 取消令牌。
/// 用户详情。
Task> GetDetailAsync(Guid userId, CancellationToken cancellationToken = default);
///
/// 分页查询用户列表。
///
/// 查询条件。
/// 取消令牌。
/// 分页结果。
Task>> GetPagedListAsync(UserQueryDto query, CancellationToken cancellationToken = default);
///
/// 重置用户密码。
///
/// 重置密码命令。
/// 取消令牌。
/// 操作结果。
Task ResetPasswordAsync(Contracts.Commands.ResetUserPasswordCommand command, CancellationToken cancellationToken = default);
///
/// 启用/禁用用户。
///
/// 启用/禁用用户命令。
/// 取消令牌。
/// 操作结果。
Task ToggleUserStatusAsync(Contracts.Commands.ToggleUserStatusCommand command, CancellationToken cancellationToken = default);
}