Files
ai-agent-admin/backend-fastapi/online_dev/form_manager/model.py
T
2026-06-09 21:18:33 +08:00

60 lines
2.5 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""
表单管理数据模型
"""
from sqlalchemy import Column, String, Text, Integer, Index, JSON, Boolean
from app.base_model import BaseModel
class FormMeta(BaseModel):
"""表单元数据"""
__tablename__ = "form_meta"
# 所属应用(逻辑外键关联 core_application
application_id = Column(String(21), nullable=True, index=True, comment="所属应用ID")
name = Column(String(100), nullable=False, comment="表单名称")
code = Column(String(100), unique=True, nullable=False, comment="表单编码")
form_type = Column(String(20), default="normal", comment="表单类型: normal/workflow")
description = Column(Text, default="", comment="描述")
status = Column(String(20), default="draft", index=True, comment="状态: draft/published")
version = Column(Integer, default=1, comment="版本号")
# 数据源配置
db_config = Column(String(100), nullable=False, comment="数据库配置名")
main_table = Column(String(100), nullable=False, comment="主表名")
main_table_schema = Column(String(100), default="", comment="主表Schema")
main_table_database = Column(String(100), default="", comment="主表数据库")
# 移动端配置
show_in_mobile = Column(Boolean, default=False, comment="是否在移动端显示")
# 跨应用引用
globally_visible = Column(Boolean, default=False, comment="是否全局可见(供其他应用引用)")
# 图标配置
icon = Column(String(100), default="", comment="图标")
icon_bg_color = Column(String(200), default="", comment="图标背景色")
# JSON 配置
form_config = Column(JSON, default=dict, comment="表单设计配置")
list_config = Column(JSON, default=dict, comment="列表设计配置")
class FormSubTable(BaseModel):
"""表单子表关联"""
__tablename__ = "form_sub_table"
# 所属表单(逻辑外键)
form_id = Column(String(50), nullable=False, index=True, comment="所属表单ID")
table_name = Column(String(100), nullable=False, comment="从表名")
table_schema = Column(String(100), default="", comment="从表Schema")
table_database = Column(String(100), default="", comment="从表数据库")
alias = Column(String(100), default="", comment="别名")
foreign_key = Column(String(100), nullable=False, comment="外键字段")
related_field = Column(String(100), default="id", comment="关联主表字段")
relation_type = Column(String(20), default="one-to-many", comment="关联类型: one-to-one/one-to-many")