45 lines
1.7 KiB
C#
45 lines
1.7 KiB
C#
using OrpaonVision.Core.Results;
|
||
using OrpaonVision.Core.Audit.Contracts;
|
||
using OrpaonVision.Core.Audit.Contracts.Queries;
|
||
|
||
namespace OrpaonVision.Core.Audit;
|
||
|
||
/// <summary>
|
||
/// 审计应用服务接口。
|
||
/// </summary>
|
||
public interface IAuditAppService
|
||
{
|
||
/// <summary>
|
||
/// 记录审计日志。
|
||
/// </summary>
|
||
/// <param name="auditLog">审计日志详情。</param>
|
||
/// <param name="cancellationToken">取消令牌。</param>
|
||
/// <returns>操作结果。</returns>
|
||
Task<Result> LogAsync(AuditLogDetailDto auditLog, CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 分页查询审计日志。
|
||
/// </summary>
|
||
/// <param name="query">查询条件。</param>
|
||
/// <param name="cancellationToken">取消令牌。</param>
|
||
/// <returns>分页结果。</returns>
|
||
Task<Result<PagedResult<AuditLogDetailDto>>> GetPagedListAsync(AuditLogQueryDto query, CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 获取审计日志详情。
|
||
/// </summary>
|
||
/// <param name="auditLogId">审计日志ID。</param>
|
||
/// <param name="cancellationToken">取消令牌。</param>
|
||
/// <returns>审计日志详情。</returns>
|
||
Task<Result<AuditLogDetailDto>> GetDetailAsync(Guid auditLogId, CancellationToken cancellationToken = default);
|
||
|
||
/// <summary>
|
||
/// 获取操作统计。
|
||
/// </summary>
|
||
/// <param name="startTime">开始时间(UTC)。</param>
|
||
/// <param name="endTime">结束时间(UTC)。</param>
|
||
/// <param name="cancellationToken">取消令牌。</param>
|
||
/// <returns>操作统计结果。</returns>
|
||
Task<Result<AuditStatisticsDto>> GetStatisticsAsync(DateTime startTime, DateTime endTime, CancellationToken cancellationToken = default);
|
||
}
|