Files
OrpaonVision/OrpaonVision.Core/Security/IUserAppService.cs
2026-04-06 22:04:05 +08:00

68 lines
2.7 KiB
C#

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