from typing import Optional, List
from pydantic import BaseModel, Field


class Product(BaseModel):
    product_id: Optional[str] = None
    url: Optional[str] = None
    name: Optional[str] = None
    price: Optional[str] = None
    currency: Optional[str] = None
    color: Optional[str] = None
    description: Optional[str] = None
    image_urls: List[str] = Field(default_factory=list)
    size_variants: List[str] = Field(default_factory=list)


class RowOut(BaseModel):
    category_name: str
    category_url: str
    product_id: Optional[str] = None
    url: Optional[str] = None
    name: Optional[str] = None
    price: Optional[str] = None
    currency: Optional[str] = None
    color: Optional[str] = None
    description: Optional[str] = None
    images_joined: Optional[str] = None
