# app/modules/catalog/schemas/catalog.py """ Pydantic schemas for catalog browsing operations. These schemas are for the public storefront catalog API. For store product management, see the products module. """ from datetime import datetime from pydantic import BaseModel, ConfigDict from app.modules.inventory.schemas import InventoryLocationResponse # IMPORT-002 from app.modules.marketplace.schemas import MarketplaceProductResponse # IMPORT-002 class ProductResponse(BaseModel): """Response model for a product in the catalog.""" model_config = ConfigDict(from_attributes=True) id: int store_id: int marketplace_product: MarketplaceProductResponse store_sku: str | None price: float | None sale_price: float | None currency: str | None availability: str | None condition: str | None is_featured: bool is_active: bool display_order: int min_quantity: int max_quantity: int | None created_at: datetime updated_at: datetime # Include inventory summary total_inventory: int | None = None available_inventory: int | None = None class ProductDetailResponse(ProductResponse): """Product with full inventory details.""" inventory_locations: list[InventoryLocationResponse] = [] class ProductListResponse(BaseModel): """Paginated list of products.""" products: list[ProductResponse] total: int skip: int limit: int