package cn.iocoder.yudao.module.qcreport.controller.admin.aiimport.vo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import java.util.List; /** * 组件积木清单的一项:前端注册表的**派生视图**,喂给大模型当「可用积木」。 *
* 由前端从活注册表生成(剥掉 icon / buildContent / validate 这些不可序列化的成员)后随请求上传。 * 后端刻意不硬编码这份清单:注册表在前端是唯一真相来源,后端抄一份就是第二个真相来源, * 前端加了组件、改了必填字段时后端副本会静默过期,大模型随即会编出注册表里根本不存在的 type。 *
* 积木清单只用于拼 prompt。后端**不据此做任何渲染或合法性推断**——
* 真正把关的是前端装配器查询活注册表;未注册的 type 在那里会被直接跳过,产不出任意 HTML。
*/
@Schema(description = "管理后台 - 智能质检报告 AI 积木清单项")
@Data
public class QcReportComponentSpecVO {
@Schema(description = "组件类型,如 ReportHeader / QualityTable", requiredMode = Schema.RequiredMode.REQUIRED,
example = "QualityTable")
private String type;
@Schema(description = "组件显示名,供模型理解语义", example = "检验项目表格")
private String label;
@Schema(description = "组件分类,如 basic / data / result", example = "data")
private String category;
@Schema(description = "选型说明:这个组件用来放什么、不要用来放什么",
example = "文档最顶部的抬头块:公司名称、报告标题、报告编号")
private String hint;
@Schema(description = "该组件允许填写的属性字段;未在此声明的 key 一律会被丢弃")
private List