""" 基础API模型模块 包含通用的API请求和响应的数据模型 """ from typing import Optional, Any, Generic, TypeVar, Dict, List from pydantic import BaseModel, Field # 定义泛型类型变量 T = TypeVar('T') class ApiResponse(BaseModel, Generic[T]): """ 标准API响应模型 适用于所有API响应 Args: code: 状态码 message: 响应消息 data: 响应数据 """ code: int = Field(200, description="状态码,200表示成功") message: str = Field("操作成功", description="响应消息") data: Optional[T] = Field(None, description="响应数据") class PaginationParams(BaseModel): """ 分页查询参数 适用于所有需要分页的接口 """ pageNum: int = Field(1, ge=1, description="页码,默认为1") pageSize: int = Field(10, ge=1, le=100, description="每页记录数,默认为10") class SortParams(BaseModel): """ 排序参数 适用于所有需要排序的接口 """ sortField: Optional[str] = Field(None, description="排序字段") sortOrder: str = Field("desc", description="排序方式:asc(升序)、desc(降序)") class PageResult(BaseModel, Generic[T]): """ 分页结果模型 适用于所有返回分页数据的接口 """ total: int = Field(..., description="总记录数") list: List[T] = Field(..., description="数据列表") pageNum: int = Field(..., description="当前页码") pageSize: int = Field(..., description="每页记录数") totalPages: int = Field(..., description="总页数")