using OrpaonVision.Core.Results; using OrpaonVision.Model.Production; namespace OrpaonVision.Core.Production; /// /// 运行状态转换日志仓储接口。 /// public interface IRunStateTransitionLogRepository { /// /// 创建状态转换日志。 /// /// 状态转换日志模型。 /// 取消令牌。 /// 创建结果。 Task> CreateAsync(RunStateTransitionLogModel log, CancellationToken cancellationToken = default); /// /// 根据ID获取状态转换日志。 /// /// 日志ID。 /// 取消令牌。 /// 状态转换日志模型。 Task> GetByIdAsync(Guid logId, CancellationToken cancellationToken = default); /// /// 根据产品会话ID获取状态转换日志列表。 /// /// 产品会话ID。 /// 取消令牌。 /// 状态转换日志列表。 Task>> GetBySessionIdAsync(Guid sessionId, CancellationToken cancellationToken = default); /// /// 根据层级会话ID获取状态转换日志列表。 /// /// 层级会话ID。 /// 取消令牌。 /// 状态转换日志列表。 Task>> GetByLayerSessionIdAsync(Guid layerSessionId, CancellationToken cancellationToken = default); /// /// 根据转换类型获取状态转换日志列表。 /// /// 转换类型。 /// 取消令牌。 /// 状态转换日志列表。 Task>> GetByTransitionTypeAsync(RunStateTransitionType transitionType, CancellationToken cancellationToken = default); /// /// 根据人工干预标志获取状态转换日志列表。 /// /// 是否人工干预。 /// 取消令牌。 /// 状态转换日志列表。 Task>> GetByManualInterventionAsync(bool isManualIntervention, CancellationToken cancellationToken = default); /// /// 分页查询状态转换日志。 /// /// 页索引。 /// 页大小。 /// 产品类型编码(可选)。 /// 转换类型(可选)。 /// 是否人工干预(可选)。 /// 开始时间(可选)。 /// 结束时间(可选)。 /// 取消令牌。 /// 分页结果。 Task>> GetPagedAsync( int pageIndex, int pageSize, string? productTypeCode = null, RunStateTransitionType? transitionType = null, bool? isManualIntervention = null, DateTime? startTime = null, DateTime? endTime = null, CancellationToken cancellationToken = default); /// /// 删除状态转换日志。 /// /// 日志ID。 /// 取消令牌。 /// 删除结果。 Task> DeleteAsync(Guid logId, CancellationToken cancellationToken = default); /// /// 批量删除状态转换日志。 /// /// 产品会话ID列表。 /// 取消令牌。 /// 删除结果。 Task> DeleteBySessionIdsAsync(List sessionIds, CancellationToken cancellationToken = default); /// /// 清理指定日期之前的日志。 /// /// 指定日期。 /// 取消令牌。 /// 删除的记录数。 Task> CleanupLogsBeforeAsync(DateTime beforeDate, CancellationToken cancellationToken = default); }