from pydantic import BaseModel, Field
from typing import Optional
from decimal import Decimal

class MatchInput(BaseModel):
    id: Optional[str] = ""
    producer: Optional[str] = ""
    title: Optional[str] = ""
    vintage: Optional[str] = ""
    size: Optional[str] = ""
    bottle_size_id: Optional[str] = Field(default=None, alias="bottleSizeId")
    keyword_text: Optional[str] = Field(default="", alias="keywordText")
    original_keyword_text: Optional[str] = Field(default="", alias="originalKeywordText")
    history_text: Optional[str] = Field(default="", alias="historyText")
    original_history_text: Optional[str] = Field(default="", alias="originalHistoryText")
    price: Optional[Decimal] = None
    description: Optional[str] = ""
    sku: Optional[str] = ""
    tax_status: Optional[str] = Field(default="", alias="taxStatus")
    url: Optional[str] = ""

    class Config:
        allow_population_by_field_name = True
        orm_mode = True
