from typing import Optional from pydantic import BaseModel, Field # Category schemas class CategoryBase(BaseModel): name: str description: Optional[str] = None class CategoryCreate(CategoryBase): pass class CategoryUpdate(CategoryBase): name: Optional[str] = None class Category(CategoryBase): id: str class Config: orm_mode = True # Product schemas class ProductBase(BaseModel): name: str description: Optional[str] = None price: float = Field(..., gt=0) stock_quantity: int = Field(..., ge=0) is_active: bool = True image_url: Optional[str] = None category_id: Optional[str] = None class ProductCreate(ProductBase): pass class ProductUpdate(ProductBase): name: Optional[str] = None price: Optional[float] = Field(None, gt=0) stock_quantity: Optional[int] = Field(None, ge=0) class Product(ProductBase): id: str category: Optional[Category] = None class Config: orm_mode = True