cms/models/cms_content.json
Hermes Agent 4495e9589b refactor: 从独立webapp重构为纯Sage模块
- cms/: Python包(合并原entcms+dingdingflow)
  - init.py: 791行,load_cms()注册所有CRUD+审批函数
  - dingtalk_client.py: 钉钉API客户端
- models/: 7个表定义JSON(5个CMS+2个DD)
- json/: 7个CRUD定义JSON
- wwwroot/: 管理后台CRUD页面和API(37个dspy)
- init/data.yaml: 模块初始数据(appcodes/appcodes_kv/分类/栏目/配置)
- scripts/load_path.py: RBAC权限配置
- pyproject.toml: pip-installable包定义
- 删除: app/, conf/, build.sh, entcms/, dingdingflow/等webapp文件
- 数据库访问统一为DBPools()+_get_dbname()动态模式
2026-06-15 11:06:11 +08:00

155 lines
3.5 KiB
JSON

{
"summary": [
{
"name": "cms_content",
"title": "CMS内容表",
"primary": [
"id"
]
}
],
"fields": [
{
"name": "id",
"title": "主键ID",
"type": "str",
"length": 32,
"nullable": "no"
},
{
"name": "org_id",
"title": "组织ID",
"type": "str",
"length": 32,
"default": "0"
},
{
"name": "content_type",
"title": "内容类型(banner/product/case/news)",
"type": "str",
"length": 32,
"nullable": "no"
},
{
"name": "category_id",
"title": "分类ID",
"type": "str",
"length": 32
},
{
"name": "title",
"title": "标题",
"type": "str",
"length": 255,
"nullable": "no"
},
{
"name": "subtitle",
"title": "副标题",
"type": "str",
"length": 255
},
{
"name": "summary_text",
"title": "摘要",
"type": "str",
"length": 500
},
{
"name": "body",
"title": "正文内容",
"type": "text"
},
{
"name": "image_url",
"title": "封面图片URL",
"type": "str",
"length": 500
},
{
"name": "tags",
"title": "标签(逗号分隔)",
"type": "str",
"length": 500
},
{
"name": "sort_order",
"title": "排序号",
"type": "int",
"default": "0"
},
{
"name": "status",
"title": "状态(draft/pending/approved/published/archived)",
"type": "str",
"length": 32,
"default": "draft"
},
{
"name": "approval_id",
"title": "审批单ID",
"type": "str",
"length": 32
},
{
"name": "published_at",
"title": "发布时间",
"type": "datetime"
},
{
"name": "extra_json",
"title": "扩展JSON",
"type": "text"
},
{
"name": "created_by",
"title": "创建人",
"type": "str",
"length": 32
},
{
"name": "created_at",
"title": "创建时间",
"type": "timestamp"
},
{
"name": "updated_at",
"title": "更新时间",
"type": "timestamp"
}
],
"indexes": [
{
"name": "idx_content_type_status",
"idxtype": "index",
"idxfields": [
"content_type",
"status"
]
},
{
"name": "idx_content_org",
"idxtype": "index",
"idxfields": [
"org_id",
"content_type"
]
},
{
"name": "idx_content_sort",
"idxtype": "index",
"idxfields": [
"sort_order"
]
}
],
"codes": [
{
"field": "category_id",
"table": "cms_categories",
"valuefield": "id",
"textfield": "name"
}
]
}