from typing import List, Optional from pydantic import BaseModel class CategoryBase(BaseModel): """Base schema for category data.""" name: str description: Optional[str] = None class CategoryCreate(CategoryBase): """Schema for creating a new category.""" pass class CategoryUpdate(BaseModel): """Schema for updating a category.""" name: Optional[str] = None description: Optional[str] = None class ProductInCategory(BaseModel): """Schema for product data in category responses.""" id: int name: str price: float class Config: from_attributes = True class CategoryResponse(CategoryBase): """Schema for category responses.""" id: int class Config: from_attributes = True class CategoryWithProducts(CategoryResponse): """Schema for category with related products.""" products: List[ProductInCategory] = [] class Config: from_attributes = True