from datetime import datetime from typing import Optional from pydantic import BaseModel, Field # Shared properties class ItemBase(BaseModel): name: str description: Optional[str] = None quantity: int = Field(default=0, ge=0) price: Optional[float] = Field(default=None, ge=0) category: Optional[str] = None # Properties to receive on item creation class ItemCreate(ItemBase): pass # Properties to receive on item update class ItemUpdate(ItemBase): name: Optional[str] = None quantity: Optional[int] = Field(default=None, ge=0) # Properties shared by models stored in DB class ItemInDBBase(ItemBase): id: int created_at: datetime updated_at: datetime class Config: orm_mode = True from_attributes = True # Properties to return to client class Item(ItemInDBBase): pass