from typing import List, Optional
from pydantic import BaseModel


class BeerPairingMatch(BaseModel):
    beer: str
    reason: str
    beer_rating: Optional[str] = None
    price: Optional[str] = None


class BeerPairingSuggestion(BaseModel):
    beer_style: str
    reason: str


class BeerPairingResult(BaseModel):
    food: str
    matches: List[BeerPairingMatch]
    suggestions: Optional[List[BeerPairingSuggestion]] = None
    notes: Optional[str] = None


class BeerPairingResponse(BaseModel):
    language: str
    results: List[BeerPairingResult]
    version: str
