from typing import List, Optional
from pydantic import BaseModel


class WinePairingMatch(BaseModel):
    wine: str
    reason: str
    vivino_rating: Optional[str] = None
    price: Optional[str] = None


class WinePairingSuggestion(BaseModel):
    wine_style: str
    reason: str


class WinePairingResult(BaseModel):
    food: str
    matches: List[WinePairingMatch]
    suggestions: Optional[List[WinePairingSuggestion]] = None
    notes: Optional[str] = None


class WinePairingResponse(BaseModel):
    language: str
    results: List[WinePairingResult]
    version: str
