Build lightweight AI agent admin
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
#!/usr/bin/env python
|
||||
# -*- coding: utf-8 -*-
|
||||
"""
|
||||
应用管理Schema
|
||||
"""
|
||||
from datetime import datetime
|
||||
from typing import Optional, List, Dict, Any
|
||||
|
||||
from pydantic import BaseModel, ConfigDict, Field
|
||||
|
||||
from app.base_schema import CSTDatetime
|
||||
|
||||
|
||||
class ApplicationBase(BaseModel):
|
||||
"""应用基础Schema"""
|
||||
name: str = Field(..., min_length=1, max_length=100, description="应用名称")
|
||||
code: str = Field(..., min_length=1, max_length=100, pattern=r"^[a-zA-Z][a-zA-Z0-9_-]*$", description="应用编码")
|
||||
description: Optional[str] = Field(default="", description="应用描述")
|
||||
icon: Optional[str] = Field(default="", description="应用图标")
|
||||
cover: Optional[str] = Field(default="", description="应用封面图URL")
|
||||
app_type: Optional[str] = Field(default="mixed", description="应用类型: form/workflow/dashboard/screen/mixed/ai")
|
||||
home_path: Optional[str] = Field(default=None, description="应用首页路径")
|
||||
config: Optional[Dict[str, Any]] = Field(default_factory=dict, description="应用配置")
|
||||
system_menu_ids: Optional[List[str]] = Field(default_factory=list, description="开发模式下显示的系统菜单ID列表")
|
||||
|
||||
|
||||
class ApplicationCreate(ApplicationBase):
|
||||
"""创建应用Schema"""
|
||||
pass
|
||||
|
||||
|
||||
class ApplicationUpdate(BaseModel):
|
||||
"""更新应用Schema - 所有字段可选"""
|
||||
name: Optional[str] = Field(default=None, min_length=1, max_length=100, description="应用名称")
|
||||
code: Optional[str] = Field(default=None, min_length=1, max_length=100, pattern=r"^[a-zA-Z][a-zA-Z0-9_-]*$", description="应用编码")
|
||||
description: Optional[str] = Field(default=None, description="应用描述")
|
||||
icon: Optional[str] = Field(default=None, description="应用图标")
|
||||
cover: Optional[str] = Field(default=None, description="应用封面图URL")
|
||||
app_type: Optional[str] = Field(default=None, description="应用类型")
|
||||
home_path: Optional[str] = Field(default=None, description="应用首页路径")
|
||||
status: Optional[str] = Field(default=None, description="应用状态: draft/published/disabled")
|
||||
config: Optional[Dict[str, Any]] = Field(default=None, description="应用配置")
|
||||
team_ids: Optional[List[str]] = Field(default=None, description="团队成员ID列表")
|
||||
system_menu_ids: Optional[List[str]] = Field(default=None, description="开发模式下显示的系统菜单ID列表")
|
||||
|
||||
|
||||
class ApplicationResponse(ApplicationBase):
|
||||
"""应用响应Schema"""
|
||||
id: str
|
||||
status: str = "draft"
|
||||
home_path: Optional[str] = None
|
||||
version: int = 1
|
||||
owner_id: Optional[str] = None
|
||||
team_ids: List[str] = []
|
||||
system_menu_ids: Optional[List[str]] = []
|
||||
sort: int = 0
|
||||
is_deleted: bool = False
|
||||
sys_create_datetime: Optional[CSTDatetime] = None
|
||||
sys_update_datetime: Optional[CSTDatetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class ApplicationListResponse(BaseModel):
|
||||
"""应用列表响应Schema(简化版)"""
|
||||
id: str
|
||||
name: str
|
||||
code: str
|
||||
description: Optional[str] = ""
|
||||
icon: Optional[str] = ""
|
||||
cover: Optional[str] = ""
|
||||
app_type: str = "mixed"
|
||||
status: str = "draft"
|
||||
home_path: Optional[str] = None
|
||||
version: int = 1
|
||||
owner_id: Optional[str] = None
|
||||
system_menu_ids: Optional[List[str]] = []
|
||||
sys_create_datetime: Optional[CSTDatetime] = None
|
||||
|
||||
model_config = ConfigDict(from_attributes=True)
|
||||
|
||||
|
||||
class ApplicationStatsResponse(BaseModel):
|
||||
"""应用统计响应Schema"""
|
||||
id: str
|
||||
name: str
|
||||
code: str
|
||||
form_count: int = 0
|
||||
page_count: int = 0
|
||||
workflow_count: int = 0
|
||||
screen_count: int = 0
|
||||
data_source_count: int = 0
|
||||
Reference in New Issue
Block a user