P0安全: SECRET_KEY/ADMIN_PASSWORD/CORS环境变量化, seed仅admin P1Mock: mock.ts 301->88行, 删8数据mock+5generateMock, net-1300行 P2组件: useToast/useFetchList+ConfirmDialog/FormDialog P3菜单: menuSections/menuItems->constants/menu.ts P4API: NotificationsPage/WorkflowPage重写+RolesPage演示 测试: 1050passed, tsc clean
40 lines
859 B
Python
40 lines
859 B
Python
"""系统设置 Schema。"""
|
|
|
|
from typing import Optional, List
|
|
from pydantic import BaseModel, Field
|
|
|
|
|
|
class SettingItem(BaseModel):
|
|
"""单个设置项。"""
|
|
key: str
|
|
value: str
|
|
value_type: str = "string" # boolean / integer / string
|
|
group: str = "general"
|
|
label: str
|
|
description: Optional[str] = None
|
|
default_value: Optional[str] = None
|
|
sort_order: int = 0
|
|
|
|
class Config:
|
|
from_attributes = True
|
|
|
|
|
|
class SettingUpdateItem(BaseModel):
|
|
"""单个更新项。"""
|
|
key: str
|
|
value: str
|
|
|
|
|
|
class SettingBulkUpdate(BaseModel):
|
|
"""批量更新设置项。"""
|
|
settings: List[SettingUpdateItem] = Field(..., min_length=1)
|
|
|
|
|
|
class SettingGroupResponse(BaseModel):
|
|
"""分组设置响应。"""
|
|
group: str
|
|
label: str
|
|
icon: str = ""
|
|
description: str = ""
|
|
settings: List[SettingItem]
|