from pydantic import BaseModel, ConfigDict from typing import Optional, List, Any class FunctionListBase(BaseModel): """功能基础模型""" function_name: str description: Optional[str] = None path: Optional[str] = None class FunctionListCreate(FunctionListBase): """创建功能请求""" pass class FunctionListUpdate(BaseModel): """更新功能请求""" function_name: Optional[str] = None description: Optional[str] = None path: Optional[str] = None class FunctionListResponse(FunctionListBase): """功能响应模型""" id: int model_config = ConfigDict(from_attributes=True) @classmethod def from_orm_function(cls, func): """从ORM对象创建响应对象""" return cls( id=func.id, function_name=func.function_name, description=func.description, path=func.path ) class FunctionListRequest(BaseModel): """列表查询请求""" skip: Optional[int] = 0 limit: Optional[int] = 100 class FunctionGetRequest(BaseModel): """条件查询请求""" id: Optional[int] = None function_name: Optional[str] = None class FunctionUpdateRequest(BaseModel): """更新请求""" id: int function_data: FunctionListUpdate class FunctionDeleteRequest(BaseModel): """删除请求""" id: int # 统一响应格式 class FunctionApiResponse(BaseModel): """功能API统一响应格式""" code: int = 0 message: str data: Optional[Any] = None class FunctionListApiResponse(BaseModel): """功能列表响应格式""" code: int = 0 message: str total: int data: List[FunctionListResponse] = []