S8DatasetDefinition.cs 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. namespace Admin.NET.Plugin.AiDOP.Service.S8.Rules.DataAccess;
  2. /// <summary>
  3. /// 数据集定义:描述"系统认知中存在这样一个数据集",
  4. /// 与"当前谁负责给它供数"(Provider Registry 的职责)严格分离。
  5. ///
  6. /// 这样才能表达一个必要的中间状态:数据集已定义、规则可以先配好存草稿,
  7. /// 但 Provider 尚未实现,因此不允许启用。
  8. /// </summary>
  9. public sealed class S8DatasetDefinition
  10. {
  11. /// <summary>数据集编码,规则通过它引用数据集。</summary>
  12. public string DatasetCode { get; init; } = string.Empty;
  13. /// <summary>展示名(配置界面用)。</summary>
  14. public string DisplayName { get; init; } = string.Empty;
  15. /// <summary>OBJECT(对象级)/ METRIC(指标级)。</summary>
  16. public string Kind { get; init; } = S8DatasetKind.Object;
  17. /// <summary>能力声明:机制层 + canonical 字段层。</summary>
  18. public S8DatasetCapabilities Capabilities { get; init; } = new();
  19. /// <summary>声明状态:DEFINED(在用)/ DISABLED(停用)。有效状态由诊断结合 Provider 注册情况计算。</summary>
  20. public string Status { get; init; } = S8DatasetStatus.Defined;
  21. /// <summary>说明(可选)。</summary>
  22. public string? Description { get; init; }
  23. /// <summary>
  24. /// Authority 声明:健康判定需要知道的一切(生产者作业、新鲜度窗口、快照不变量)。
  25. ///
  26. /// <para>为 null 表示该数据集尚未声明 Authority ——
  27. /// <see cref="Health.IS8AuthorityHealthResolver"/> 会判 UNKNOWN 并拦截恢复判定,
  28. /// 但<b>不影响</b>取数、命中评估与建单/刷新。保守方向:宁可不恢复,不可误恢复。</para>
  29. /// </summary>
  30. public Health.S8AuthoritySpec? AuthoritySpec { get; init; }
  31. /// <summary>定义本身是否处于可用状态(不含 Provider 判断)。</summary>
  32. public bool IsActive => string.Equals(Status, S8DatasetStatus.Defined, StringComparison.OrdinalIgnoreCase);
  33. }
  34. /// <summary>
  35. /// 数据集定义来源。真实业务数据集将来通过实现本接口注册进 Catalog,
  36. /// 无需修改 Catalog 自身代码。
  37. ///
  38. /// 本批(S8-DATASET-FOUNDATION-HARDENING-2)**不提供任何生产实现**:
  39. /// 字段级审计显示 6 个候选标准数据集全部为 READY_WITH_PLATFORM_GAP,
  40. /// 在数据平台补齐数据集级新鲜度判定之前不登记真实业务数据集。
  41. /// </summary>
  42. public interface IS8DatasetDefinitionSource
  43. {
  44. IEnumerable<S8DatasetDefinition> GetDefinitions();
  45. }