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

56 lines
2.2 KiB
C#

using OrpaonVision.Core.Configuration.Contracts;
using OrpaonVision.Core.Results;
namespace OrpaonVision.Core.Configuration;
/// <summary>
/// 规则配置应用服务。
/// </summary>
public interface IRuleConfigurationAppService
{
/// <summary>
/// 保存规则草稿。
/// </summary>
Task<Result> SaveDraftAsync(RuleConfigurationDraftDto draft, CancellationToken cancellationToken = default);
/// <summary>
/// 发布规则版本。
/// </summary>
Task<Result<RuleVersionDto>> PublishAsync(string productTypeCode, string publishedBy, CancellationToken cancellationToken = default);
/// <summary>
/// 获取最新发布版本。
/// </summary>
Task<Result<RuleVersionDto?>> GetLatestPublishedVersionAsync(string productTypeCode, CancellationToken cancellationToken = default);
/// <summary>
/// 对比两个规则版本。
/// </summary>
Task<Result<RuleVersionCompareDto>> CompareVersionsAsync(string productTypeCode, string sourceVersionNo, string targetVersionNo, CancellationToken cancellationToken = default);
/// <summary>
/// 回滚到指定规则版本。
/// </summary>
Task<Result<RuleVersionDto>> RollbackToVersionAsync(string productTypeCode, string targetVersionNo, string rolledBackBy, CancellationToken cancellationToken = default);
/// <summary>
/// 停用指定规则版本。
/// </summary>
Task<Result> DisableVersionAsync(string productTypeCode, string versionNo, string disabledBy, CancellationToken cancellationToken = default);
/// <summary>
/// 获取指定规则版本详情。
/// </summary>
Task<Result<RuleVersionDto>> GetVersionDetailAsync(string productTypeCode, string versionNo, CancellationToken cancellationToken = default);
/// <summary>
/// 分页查询规则版本列表。
/// </summary>
Task<Result<PagedResult<RuleVersionDto>>> GetVersionPagedListAsync(string productTypeCode, int pageIndex = 1, int pageSize = 20, CancellationToken cancellationToken = default);
/// <summary>
/// 查询最近规则版本操作审计记录。
/// </summary>
Task<Result<IReadOnlyList<RuleVersionAuditDto>>> GetRecentAuditsAsync(string productTypeCode, int take = 20, CancellationToken cancellationToken = default);
}