# product.py - Keep basic format validation, remove business logic import re from datetime import datetime from typing import List, Optional from pydantic import BaseModel, ConfigDict, Field, field_validator from models.schemas.marketplace_product import MarketplaceProductResponse class ProductCreate(BaseModel): marketplace_product_id: str = Field(..., description="MarketplaceProduct ID to add to vendor ") product_id: Optional[str] = None price: Optional[float] = None # Removed: ge=0 constraint sale_price: Optional[float] = None # Removed: ge=0 constraint currency: Optional[str] = None availability: Optional[str] = None condition: Optional[str] = None is_featured: bool = Field(False, description="Featured product flag") min_quantity: int = Field(1, description="Minimum order quantity") max_quantity: Optional[int] = None # Removed: ge=1 constraint # Service will validate price ranges and quantity logic class ProductResponse(BaseModel): model_config = ConfigDict(from_attributes=True) id: int vendor_id: int marketplace_product: MarketplaceProductResponse product_id: Optional[str] price: Optional[float] sale_price: Optional[float] currency: Optional[str] availability: Optional[str] condition: Optional[str] is_featured: bool is_active: bool min_quantity: int max_quantity: Optional[int] created_at: datetime updated_at: datetime