namespace Admin.NET.Plugin.AiDOP.DataPlatform.S0Dim; /// /// dim 单列的声明式映射。 /// /// 🔴 **没有默认值、不可省略**(TenantIdColumn 除外): /// staging 的 raw_data 键是源表的**物理列名**(MdpDbPullExecutorSELECT * /// 后按 DataTable 列名序列化),而实体属性名与物理列名并不总是一致。 /// 典型反例:AdoS0LocationMaster.DomainCode 的物理列名是 Domain, /// 同表另有一个 132 行全为空串的影子列 domain_code; /// 任何 “属性名 → snake_case” 的自动推导都会静默取到空值且不报错。 /// /// dim 表列名。 /// 取值方式。 /// 源表**物理列名**(即 raw_data 的键)。 时必须为 null。 /// true 时生成 IS NOT NULL 过滤:取不到值的整行不进 dim(随后被行数对账捕获)。业务键列必须为 true。 /// 使用。 /// 使用。 public sealed record S0DimColumn( string TargetColumn, S0DimValueKind Kind, string? JsonPath = null, bool Required = false, int Precision = 18, int Scale = 6);