27 lines
955 B
Python
27 lines
955 B
Python
from typing import Any, Dict, List, Optional, Union, ClassVar
|
|
from pydantic import BaseModel, Field
|
|
from datetime import datetime
|
|
|
|
class APIResponseModel(BaseModel):
|
|
"""API响应基础模型"""
|
|
code: int = Field(200, description="业务状态码")
|
|
message: str = Field("操作成功", description="响应消息")
|
|
data: Optional[Any] = Field(None, description="响应数据")
|
|
|
|
class Config:
|
|
"""模型配置"""
|
|
arbitrary_types_allowed = True
|
|
json_encoders = {
|
|
datetime: lambda dt: dt.isoformat()
|
|
}
|
|
|
|
class PaginatedResponseModel(BaseModel):
|
|
"""分页响应模型"""
|
|
items: List[Any] = Field(..., description="数据项列表")
|
|
total: int = Field(..., description="总数据量")
|
|
page: int = Field(1, description="当前页码")
|
|
size: int = Field(10, description="每页数据量")
|
|
|
|
class Config:
|
|
"""模型配置"""
|
|
arbitrary_types_allowed = True |