75 lines
1.6 KiB
Python
75 lines
1.6 KiB
Python
from pydantic import BaseModel, ConfigDict
|
|
from typing import Optional, List, Any
|
|
|
|
|
|
class FunctionListBase(BaseModel):
|
|
"""功能基础模型"""
|
|
function_name: str
|
|
description: Optional[str] = None
|
|
|
|
|
|
class FunctionListCreate(FunctionListBase):
|
|
"""创建功能请求"""
|
|
pass
|
|
|
|
|
|
class FunctionListUpdate(BaseModel):
|
|
"""更新功能请求"""
|
|
function_name: Optional[str] = None
|
|
description: 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
|
|
)
|
|
|
|
|
|
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] = []
|