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


class TranslationRequest(BaseModel):
    menuItem: Optional[str] = None
    description: Optional[str] = None
    weight_grams: Optional[float] = None
    type: Optional[Literal["allergensOnly", "menuOnly"]] = None
    allergensOnly: Optional[bool] = None
    englishIncluded: Optional[bool] = None
    city: Optional[str] = None
    zavedenia_id: Optional[int] = None


class MenuItemInput(BaseModel):
    id: int
    name: Optional[str] = None
    description: Optional[str] = None


class BatchTranslationRequest(BaseModel):
    language_from: str
    menu_items: List[MenuItemInput]
    type: Optional[Literal["allergensOnly", "menuOnly"]] = None
    allergensOnly: Optional[bool] = None
    englishIncluded: Optional[bool] = None
    city: Optional[str] = None
    zavedenia_id: Optional[int] = None
