namespace Admin.NET.Plugin.AiDOP.Dto.S8;
///
/// 大屏页面结构配置出参(GET /api/aidop/s8/dashboard/page-config)。
/// 面向四大屏启动渲染使用:只返回 enabled=true 的配置,按 layout_area + sort_no 排序。
/// 不替代 CRUD 接口 /api/aidop/s8/config/dashboard-cells,也不触发 ado_s8_exception 查询。
/// G-09 一期:DTO 不含 ShowInSidebar、FilterExpression、TenantId/FactoryId/Id、CreatedAt/UpdatedAt。
///
public class AdoS8PageConfigDto
{
public string PageCode { get; set; } = string.Empty;
public List Cells { get; set; } = new();
}
public class AdoS8PageConfigCellDto
{
/// 卡片编码(页面内唯一,前端 v-for key 锚点)
public string CellCode { get; set; } = string.Empty;
/// 卡片标题(可为空,前端按组件默认标题渲染)
public string? CellTitle { get; set; }
/// 前端图标 key(对应 @element-plus/icons-vue 组件名)
public string? Icon { get; set; }
/// 主布局区域:MODULES / ANALYSIS / SIDEBAR
public string LayoutArea { get; set; } = "ANALYSIS";
/// 展示形态:STAGE_CARD / CATEGORY_CARD / CATEGORY_COMPACT / DEPT_CLUSTER / CUSTOM
public string DisplayMode { get; set; } = "CATEGORY_CARD";
/// 页面内排序
public int SortNo { get; set; }
/// 绑定类型:EXCEPTION_TYPE / AGGREGATE / CUSTOM
public string BindingType { get; set; } = "CUSTOM";
/// binding_type=EXCEPTION_TYPE 时的异常类型编码
public string? ExceptionTypeCode { get; set; }
/// binding_type=AGGREGATE 时的聚合范围
public string? AggregateScope { get; set; }
/// 统计指标:OPEN_COUNT / FREQUENCY / AVG_DURATION / CLOSE_RATE
public string StatMetric { get; set; } = "OPEN_COUNT";
/// 时间窗:TODAY / LAST_24H / LAST_7D / LAST_30D
public string TimeWindow { get; set; } = "LAST_24H";
/// 部门聚合维度:OWNER / OCCUR
public string DeptGroupBy { get; set; } = "OWNER";
/// 是否启用(接口仅返回 enabled=true,此字段为前端知情副本)
public bool Enabled { get; set; }
}
/// page-config 查询入参
public class AdoS8PageConfigQueryDto
{
/// 页面编码:OVERVIEW / DELIVERY / PRODUCTION / SUPPLY
public string PageCode { get; set; } = string.Empty;
/// 租户 ID(0 = 仅全局基线;非 0 时会叠加工厂覆盖)
public long TenantId { get; set; } = 0;
/// 工厂 ID(0 = 仅全局基线;非 0 时会叠加工厂覆盖)
public long FactoryId { get; set; } = 0;
}