from pydantic import BaseModel from datetime import datetime from typing import Optional from app.schemas.category import Category from app.schemas.supplier import Supplier class ProductBase(BaseModel): name: str sku: str description: Optional[str] = None price: float cost: Optional[float] = None category_id: Optional[int] = None supplier_id: Optional[int] = None quantity_in_stock: int = 0 min_stock_level: int = 0 max_stock_level: Optional[int] = None is_active: bool = True class ProductCreate(ProductBase): pass class ProductUpdate(BaseModel): name: Optional[str] = None sku: Optional[str] = None description: Optional[str] = None price: Optional[float] = None cost: Optional[float] = None category_id: Optional[int] = None supplier_id: Optional[int] = None quantity_in_stock: Optional[int] = None min_stock_level: Optional[int] = None max_stock_level: Optional[int] = None is_active: Optional[bool] = None class Product(ProductBase): id: int created_at: datetime updated_at: Optional[datetime] = None category: Optional[Category] = None supplier: Optional[Supplier] = None class Config: from_attributes = True