pbl_blueprint/models/pbl_template.json

41 lines
2.3 KiB
JSON

{
"summary": [
{
"table": "pbl_template",
"name": "PBL模板",
"title": "PBL模板",
"subtitle": "蓝图模板(含离线兜底槽位)",
"primary": ["id"],
"defaultsort": "created_at desc",
"orderby": "created_at desc",
"caption": "模板"
}
],
"fields": [
{"name": "id", "type": "str(32)", "title": "主键", "notnull": 1, "primary": 1, "readonly": 1},
{"name": "tenant_id", "type": "str(32)", "title": "租户ID", "notnull": 1, "default": "0", "comment": "0=平台内置全局模板,所有租户可见"},
{"name": "template_code", "type": "str(64)", "title": "模板编码", "notnull": 1},
{"name": "name", "type": "str(255)", "title": "模板名称", "notnull": 1},
{"name": "description", "type": "text", "title": "模板说明", "default": ""},
{"name": "category", "type": "str(64)", "title": "模板分类", "default": "general"},
{"name": "subject_area", "type": "str(64)", "title": "学科领域", "default": ""},
{"name": "grade_level", "type": "str(32)", "title": "适用年级", "default": ""},
{"name": "blueprint_snapshot", "type": "longtext", "title": "蓝图骨架JSON", "default": "", "comment": "实例化时展开为蓝图+子对象"},
{"name": "offline_slots", "type": "longtext", "title": "离线兜底槽位JSON", "default": "[]", "comment": "LLM 不可用时的降级填充槽位定义"},
{"name": "is_builtin", "type": "str(1)", "title": "是否内置", "default": "0"},
{"name": "template_version", "type": "str(32)", "title": "模板版本", "default": "1.0.0"},
{"name": "status", "type": "str(32)", "title": "状态", "default": "active", "comment": "active/disabled"},
{"name": "created_by", "type": "str(32)", "title": "创建人", "default": ""},
{"name": "created_at", "type": "datetime", "title": "创建时间", "notnull": 1},
{"name": "updated_by", "type": "str(32)", "title": "更新人", "default": ""},
{"name": "updated_at", "type": "datetime", "title": "更新时间"}
],
"indexes": [
{"name": "uk_pbl_template_code", "fields": ["tenant_id", "template_code"], "unique": 1},
{"name": "idx_pbl_template_cat", "fields": ["tenant_id", "category", "status"], "unique": 0}
],
"codes": [
{"field": "category", "table": "appcodes_kv", "cond": "parentid='pbl_template_cat'", "valuefield": "k", "textfield": "v"}
]
}