# marketplace.py - Keep URL validation, remove business constraints from datetime import datetime from typing import Optional from pydantic import BaseModel, Field, field_validator class MarketplaceImportRequest(BaseModel): url: str = Field(..., description="URL to CSV file from marketplace") marketplace: str = Field(default="Letzshop", description="Marketplace name") shop_code: str = Field(..., description="Shop code to associate products with") batch_size: Optional[int] = Field(1000, description="Processing batch size") # Removed: gt=0, le=10000 constraints - let service handle @field_validator("url") @classmethod def validate_url(cls, v): # Keep URL format validation for security if not v.startswith(("http://", "https://")): raise ValueError("URL must start with http:// or https://") return v @field_validator("marketplace", "shop_code") @classmethod def validate_strings(cls, v): return v.strip() class MarketplaceImportJobResponse(BaseModel): job_id: int status: str marketplace: str shop_id: int shop_code: Optional[str] = None shop_name: str message: Optional[str] = None imported: Optional[int] = 0 updated: Optional[int] = 0 total_processed: Optional[int] = 0 error_count: Optional[int] = 0 error_message: Optional[str] = None created_at: Optional[datetime] = None started_at: Optional[datetime] = None completed_at: Optional[datetime] = None