""" 基础Schema """ from datetime import datetime from typing import Optional, TypeVar, Generic, List from pydantic import BaseModel T = TypeVar("T") class ResponseModel(BaseModel, Generic[T]): """统一响应模型""" code: int = 200 message: str = "success" data: Optional[T] = None timestamp: datetime = datetime.utcnow() class Config: from_attributes = True class PaginationParams(BaseModel): """分页参数""" page: int = 1 page_size: int = 20 class PaginatedData(BaseModel, Generic[T]): """分页数据""" items: List[T] total: int page: int page_size: int total_pages: int class PaginatedResponse(ResponseModel[PaginatedData[T]], Generic[T]): """分页响应模型""" pass class ErrorResponse(BaseModel): """错误响应""" code: int message: str data: Optional[dict] = None timestamp: datetime = datetime.utcnow()