Files
railway_cloud/app/schemas/function_list.py
2025-12-27 18:11:25 +08:00

81 lines
1.7 KiB
Python

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
postfix: str
class FunctionListCreate(FunctionListBase):
"""创建功能请求"""
pass
class FunctionListUpdate(BaseModel):
"""更新功能请求"""
function_name: Optional[str] = None
description: Optional[str] = None
path: Optional[str] = None
postfix: 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,
postfix=func.postfix
)
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] = []