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