feat: restore source parity and harden agent runtime
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
页面管理 Schema 定义
|
||||
"""
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
from pydantic import BaseModel, Field, ConfigDict
|
||||
|
||||
|
||||
# ============ 页面元数据 Schema ============
|
||||
|
||||
class PageMetaBase(BaseModel):
|
||||
"""页面基础信息"""
|
||||
application_id: Optional[str] = Field(None, description="所属应用ID")
|
||||
name: str = Field(..., description="页面名称")
|
||||
code: str = Field(..., pattern=r"^[a-zA-Z][a-zA-Z0-9_]*$", description="页面编码(字母开头,只能包含字母、数字和下划线)")
|
||||
category: str = Field("", description="分类")
|
||||
description: str = Field("", description="描述")
|
||||
sort: int = Field(0, description="排序")
|
||||
|
||||
|
||||
class PageMetaCreateIn(PageMetaBase):
|
||||
"""创建页面请求"""
|
||||
page_config: Dict[str, Any] = Field(default_factory=dict, description="页面设计配置")
|
||||
|
||||
|
||||
class PageMetaUpdateIn(BaseModel):
|
||||
"""更新页面请求"""
|
||||
name: Optional[str] = Field(None, description="页面名称")
|
||||
category: Optional[str] = Field(None, description="分类")
|
||||
description: Optional[str] = Field(None, description="描述")
|
||||
sort: Optional[int] = Field(None, description="排序")
|
||||
page_config: Optional[Dict[str, Any]] = Field(None, description="页面设计配置")
|
||||
|
||||
|
||||
class PageMetaOut(BaseModel):
|
||||
"""页面详情输出"""
|
||||
id: str
|
||||
name: str
|
||||
code: str
|
||||
category: str
|
||||
description: str
|
||||
status: str
|
||||
version: int
|
||||
page_config: Dict[str, Any]
|
||||
sort: int
|
||||
sys_create_datetime: str
|
||||
sys_update_datetime: str
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class PageMetaListOut(BaseModel):
|
||||
"""页面列表输出"""
|
||||
id: str
|
||||
application_id: Optional[str] = None
|
||||
application_name: str = ""
|
||||
application_code: str = ""
|
||||
name: str
|
||||
code: str
|
||||
category: str
|
||||
description: str
|
||||
status: str
|
||||
version: int
|
||||
sort: int
|
||||
sys_create_datetime: str
|
||||
sys_update_datetime: str
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
# ============ 导入导出 Schema ============
|
||||
|
||||
class PageExportOut(BaseModel):
|
||||
"""页面配置导出"""
|
||||
name: str
|
||||
code: str
|
||||
category: str
|
||||
description: str
|
||||
page_config: Dict[str, Any]
|
||||
|
||||
|
||||
class PageImportCheckIn(BaseModel):
|
||||
"""页面导入预检查请求"""
|
||||
code: str = Field(..., description="页面编码")
|
||||
|
||||
|
||||
class PageImportCheckOut(BaseModel):
|
||||
"""页面导入预检查结果"""
|
||||
code_exists: bool = Field(..., description="页面编码是否已存在")
|
||||
can_import: bool = Field(..., description="是否可以直接导入(编码不冲突)")
|
||||
|
||||
|
||||
class PageImportIn(BaseModel):
|
||||
"""页面配置导入"""
|
||||
application_id: Optional[str] = Field(None, description="所属应用ID")
|
||||
name: str = Field(..., description="页面名称")
|
||||
code: str = Field(..., description="页面编码")
|
||||
category: str = Field("", description="分类")
|
||||
description: str = Field("", description="描述")
|
||||
page_config: Dict[str, Any] = Field(default_factory=dict, description="页面设计配置")
|
||||
|
||||
|
||||
# ============ 发布配置 Schema ============
|
||||
|
||||
class PagePublishIn(BaseModel):
|
||||
"""发布页面请求(含菜单配置)"""
|
||||
menu_name: str = Field(..., description="菜单名称")
|
||||
menu_parent_id: Optional[str] = Field(None, description="上级菜单ID")
|
||||
menu_icon: str = Field("lucide:layout-dashboard", description="菜单图标")
|
||||
menu_order: int = Field(0, description="菜单排序")
|
||||
Reference in New Issue
Block a user