45 lines
1.9 KiB
Python
45 lines
1.9 KiB
Python
#!/usr/bin/env python
|
|
# -*- coding: utf-8 -*-
|
|
"""
|
|
应用管理数据模型
|
|
"""
|
|
from sqlalchemy import Column, String, Text, Integer, JSON
|
|
|
|
from app.base_model import BaseModel
|
|
|
|
|
|
class Application(BaseModel):
|
|
"""应用模型 - 低代码平台的顶层容器"""
|
|
__tablename__ = "core_application"
|
|
|
|
name = Column(String(100), nullable=False, comment="应用名称")
|
|
code = Column(String(100), unique=True, nullable=False, index=True, comment="应用编码(唯一标识,用于URL路由)")
|
|
description = Column(Text, default="", comment="应用描述")
|
|
icon = Column(String(100), default="", comment="应用图标")
|
|
cover = Column(String(500), default="", comment="应用封面图URL")
|
|
|
|
# 应用类型:form-表单应用, workflow-流程应用, dashboard-数据应用, screen-大屏应用, mixed-混合应用, ai-AI应用
|
|
app_type = Column(String(20), default="mixed", index=True, comment="应用类型")
|
|
|
|
# 状态:draft-开发中, published-已发布, disabled-已停用
|
|
status = Column(String(20), default="draft", index=True, comment="应用状态")
|
|
|
|
# 应用首页路径
|
|
home_path = Column(String(200), nullable=True, comment="应用首页路径")
|
|
|
|
# 版本号
|
|
version = Column(Integer, default=1, comment="版本号")
|
|
|
|
# 应用配置(JSON格式,可存储主题、权限、自定义配置等)
|
|
config = Column(JSON, default=dict, comment="应用配置")
|
|
|
|
# 所有者(逻辑外键关联 core_user)
|
|
owner_id = Column(String(21), nullable=True, index=True, comment="所有者ID")
|
|
|
|
# 团队成员ID列表(JSON数组)
|
|
team_ids = Column(JSON, default=list, comment="团队成员ID列表")
|
|
|
|
# 开发模式下显示的系统菜单ID列表(JSON数组)
|
|
# 如果为空或None,则显示所有系统菜单;否则只显示选中的系统菜单
|
|
system_menu_ids = Column(JSON, default=list, comment="开发模式下显示的系统菜单ID列表")
|