namespace Admin.NET.Plugin.AiDOP.Service.S8.Rules.DataAccess;
///
/// 数据集定义:描述"系统认知中存在这样一个数据集",
/// 与"当前谁负责给它供数"(Provider Registry 的职责)严格分离。
///
/// 这样才能表达一个必要的中间状态:数据集已定义、规则可以先配好存草稿,
/// 但 Provider 尚未实现,因此不允许启用。
///
public sealed class S8DatasetDefinition
{
/// 数据集编码,规则通过它引用数据集。
public string DatasetCode { get; init; } = string.Empty;
/// 展示名(配置界面用)。
public string DisplayName { get; init; } = string.Empty;
/// OBJECT(对象级)/ METRIC(指标级)。
public string Kind { get; init; } = S8DatasetKind.Object;
/// 能力声明:机制层 + canonical 字段层。
public S8DatasetCapabilities Capabilities { get; init; } = new();
/// 声明状态:DEFINED(在用)/ DISABLED(停用)。有效状态由诊断结合 Provider 注册情况计算。
public string Status { get; init; } = S8DatasetStatus.Defined;
/// 说明(可选)。
public string? Description { get; init; }
/// 定义本身是否处于可用状态(不含 Provider 判断)。
public bool IsActive => string.Equals(Status, S8DatasetStatus.Defined, StringComparison.OrdinalIgnoreCase);
}
///
/// 数据集定义来源。真实业务数据集将来通过实现本接口注册进 Catalog,
/// 无需修改 Catalog 自身代码。
///
/// 本批(S8-DATASET-FOUNDATION-HARDENING-2)**不提供任何生产实现**:
/// 字段级审计显示 6 个候选标准数据集全部为 READY_WITH_PLATFORM_GAP,
/// 在数据平台补齐数据集级新鲜度判定之前不登记真实业务数据集。
///
public interface IS8DatasetDefinitionSource
{
IEnumerable GetDefinitions();
}