from typing import Optional from pydantic import BaseModel try: # Pydantic v2 from pydantic import ConfigDict # type: ignore _HAS_V2 = True except Exception: # pragma: no cover _HAS_V2 = False class CategoryBase(BaseModel): name: str description: Optional[str] = None class CategoryCreate(CategoryBase): pass class CategoryRead(CategoryBase): id: int if _HAS_V2: model_config = ConfigDict(from_attributes=True) # type: ignore else: # Pydantic v1 fallback class Config: # type: ignore orm_mode = True