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