from typing import Optional from datetime import datetime from pydantic import BaseModel, Field # Shared properties class InventoryItemBase(BaseModel): product_id: Optional[int] = None quantity: Optional[int] = 0 location: Optional[str] = None min_stock_level: Optional[int] = 0 max_stock_level: Optional[int] = 0 # Properties to receive via API on creation class InventoryItemCreate(InventoryItemBase): product_id: int quantity: int = Field(..., ge=0) # Properties to receive via API on update class InventoryItemUpdate(InventoryItemBase): pass class InventoryItemInDBBase(InventoryItemBase): id: int last_updated: datetime class Config: orm_mode = True # Additional properties to return via API class InventoryItem(InventoryItemInDBBase): pass # Additional properties stored in DB class InventoryItemInDB(InventoryItemInDBBase): pass