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

56 lines
1.8 KiB
C#

using OrpaonVision.Core.Configuration.Contracts;
using OrpaonVision.Core.Results;
namespace OrpaonVision.Core.Configuration;
/// <summary>
/// 规则配置持久化仓储。
/// </summary>
public interface IRuleConfigurationStore
{
/// <summary>
/// 保存机种规则草稿。
/// </summary>
Result SaveDraft(RuleConfigurationDraftDto draft);
/// <summary>
/// 发布规则版本。
/// </summary>
Result<RuleVersionDto> Publish(string productTypeCode, string publishedBy);
/// <summary>
/// 获取最新已发布版本。
/// </summary>
Result<RuleVersionDto?> GetLatestPublishedVersion(string productTypeCode);
/// <summary>
/// 对比两个规则版本快照。
/// </summary>
Result<RuleVersionCompareDto> CompareVersions(string productTypeCode, string sourceVersionNo, string targetVersionNo);
/// <summary>
/// 回滚到指定规则版本(以新版本号重新发布)。
/// </summary>
Result<RuleVersionDto> RollbackToVersion(string productTypeCode, string targetVersionNo, string rolledBackBy);
/// <summary>
/// 停用指定规则版本。
/// </summary>
Result DisableVersion(string productTypeCode, string versionNo, string disabledBy);
/// <summary>
/// 获取指定规则版本详情。
/// </summary>
Result<RuleVersionDto> GetVersionDetail(string productTypeCode, string versionNo);
/// <summary>
/// 分页查询规则版本列表。
/// </summary>
Result<PagedResult<RuleVersionDto>> GetVersionPagedList(string productTypeCode, int pageIndex = 1, int pageSize = 20);
/// <summary>
/// 查询最近规则版本操作审计记录。
/// </summary>
Result<IReadOnlyList<RuleVersionAuditDto>> GetRecentAudits(string productTypeCode, int take = 20);
}