namespace Admin.NET.Plugin.AiDOP.Entity.S8.OrderFlow; /// /// ORDER-FLOW-S8-INTEGRATED-DOMAIN-RESET-1 t1a:S8 订单执行链路 baseline 聚合快照。 /// 替代 ado_demo_order_flow_snapshot;同时替代 service 层任何 baseline 硬编码。 /// service 读取协议:scope_code=BASELINE_PPT → 取本表行;scope_code=CURRENT_FILTERED → 实时聚合明细表。 /// 任何 baseline 数值(如总订单数 / 平均时长 / 5 阶段聚合)严禁出现在 service 字面量。 /// [SugarTable("ado_s8_order_flow_snapshot", "S8 订单执行链路聚合快照")] [SugarIndex("uk_order_flow_snapshot_code", nameof(TenantId), OrderByType.Asc, nameof(FactoryId), OrderByType.Asc, nameof(SnapshotCode), OrderByType.Asc, IsUnique = true)] [SugarIndex("idx_order_flow_snapshot_scope", nameof(TenantId), OrderByType.Asc, nameof(FactoryId), OrderByType.Asc, nameof(ScopeCode), OrderByType.Asc, nameof(IsDeleted), OrderByType.Asc)] public class AdoS8OrderFlowSnapshot { [SugarColumn(ColumnName = "id", IsPrimaryKey = true, ColumnDataType = "bigint")] public long Id { get; set; } [SugarColumn(ColumnName = "tenant_id", ColumnDataType = "bigint")] public long TenantId { get; set; } [SugarColumn(ColumnName = "factory_id", ColumnDataType = "bigint")] public long FactoryId { get; set; } /// 快照业务键,唯一。t2c seed 首条值固定为 CHAIN_AGGREGATE_BASELINE。 [SugarColumn(ColumnName = "snapshot_code", Length = 64)] public string SnapshotCode { get; set; } = string.Empty; /// BASELINE_PPT / BASELINE_DEMO。t2c seed 首条值固定为 BASELINE_PPT。 [SugarColumn(ColumnName = "scope_code", Length = 32)] public string ScopeCode { get; set; } = string.Empty; [SugarColumn(ColumnName = "total_orders")] public int TotalOrders { get; set; } [SugarColumn(ColumnName = "total_customers")] public int TotalCustomers { get; set; } [SugarColumn(ColumnName = "avg_response_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgResponseMinutes { get; set; } [SugarColumn(ColumnName = "avg_processing_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgProcessingMinutes { get; set; } [SugarColumn(ColumnName = "avg_loss_minutes", DecimalDigits = 2, Length = 8)] public decimal AvgLossMinutes { get; set; } /// 5 阶段聚合 JSON。每项含 orderFlowCode/orderFlowName/kpiAvgDays/actualAvgDays/onTimeRate(int %)/green/yellow/red/pending。t2c seed 写入 BASELINE_PPT 真值。 [SugarColumn(ColumnName = "stage_snapshots_json", ColumnDataType = "longtext")] public string StageSnapshotsJson { get; set; } = string.Empty; /// PPT / DEMO。 [SugarColumn(ColumnName = "scenario_code", Length = 16)] public string ScenarioCode { get; set; } = "PPT"; /// SEED / IMPORT / AGG。 [SugarColumn(ColumnName = "data_source", Length = 16)] public string DataSource { get; set; } = "SEED"; [SugarColumn(ColumnName = "created_at")] public DateTime CreatedAt { get; set; } = DateTime.Now; [SugarColumn(ColumnName = "updated_at", IsNullable = true)] public DateTime? UpdatedAt { get; set; } [SugarColumn(ColumnName = "is_deleted", ColumnDataType = "boolean")] public bool IsDeleted { get; set; } }