# models/schemas/marketplace_import_job.py - Keep URL validation, remove business constraints from datetime import datetime from typing import Optional from pydantic import BaseModel, Field, field_validator class MarketplaceImportJobRequest(BaseModel): url: str = Field(..., description="URL to CSV file from marketplace") marketplace: str = Field(default="Letzshop", description="Marketplace name") vendor_code: str = Field(..., description="Vendor 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", "vendor_code") @classmethod def validate_strings(cls, v): return v.strip() class MarketplaceImportJobResponse(BaseModel): job_id: int status: str marketplace: str vendor_id: int vendor_code: Optional[str] = None vendor_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