from typing import Optional from pydantic import BaseModel # Shared properties class ItemBase(BaseModel): name: Optional[str] = None sku: Optional[str] = None description: Optional[str] = None price: Optional[float] = None quantity: Optional[int] = 0 reorder_level: Optional[int] = 10 category_id: Optional[int] = None # Properties to receive on item creation class ItemCreate(ItemBase): name: str sku: str price: float # Properties to receive on item update class ItemUpdate(ItemBase): pass # Properties shared by models in DB class ItemInDBBase(ItemBase): id: int name: str sku: str price: float owner_id: Optional[int] = None class Config: from_attributes = True # Properties to return to client class Item(ItemInDBBase): pass # Properties stored in DB class ItemInDB(ItemInDBBase): pass