from typing import List, Optional
from pydantic import BaseModel


class TranslationResponse(BaseModel):
    menuItemTranslations: str
    descriptionTranslations: str
    allergens: List[int]
    name_en: Optional[str] = None
    description_en: Optional[str] = None
    version: str


class AllergensOnlyResponse(BaseModel):
    allergens: List[int]
    version: str


class MenuOnlyResponse(BaseModel):
    menuItemTranslations: str
    descriptionTranslations: str
    name_en: Optional[str] = None
    description_en: Optional[str] = None
    version: str


class BatchItemResponse(BaseModel):
    id: int
    menuItemTranslations: str
    descriptionTranslations: str
    allergens: List[int]
    name_en: Optional[str] = None
    description_en: Optional[str] = None


class BatchAllergensOnlyItemResponse(BaseModel):
    id: int
    allergens: List[int]


class BatchMenuOnlyItemResponse(BaseModel):
    id: int
    menuItemTranslations: str
    descriptionTranslations: str
    name_en: Optional[str] = None
    description_en: Optional[str] = None


class BatchTranslationResponse(BaseModel):
    items: List[BatchItemResponse]
    version: str


class BatchAllergensOnlyResponse(BaseModel):
    items: List[BatchAllergensOnlyItemResponse]
    version: str


class BatchMenuOnlyResponse(BaseModel):
    items: List[BatchMenuOnlyItemResponse]
    version: str
