# app/schemas/common.py from typing import Generic, TypeVar, Optional, List from pydantic import BaseModel from pydantic.generics import GenericModel T = TypeVar("T") class ApiResponse(BaseModel, Generic[T]): code: int = 0 message: str = "success" data: Optional[T] = None class PageResponse(GenericModel, Generic[T]): items: List[T] total: int page: int size: int