TRANSLATIONS = {
    "type": {
        "red": {
            "en": "red",
            "sk": "červené",
            "de": "rot",
            "da": "rød",
            "it": "rosso",
            "es": "tinto",
            "fi": "punainen",
            "sv": "rött",
        },
        "white": {
            "en": "white",
            "sk": "biele",
            "de": "weiß",
            "da": "hvid",
            "it": "bianco",
            "es": "blanco",
            "fi": "valkoinen",
            "sv": "vitt",
        },
        "rose": {
            "en": "rose",
            "sk": "ružové",
            "de": "rosé",
            "da": "rosé",
            "it": "rosato",
            "es": "rosado",
            "fi": "rosee",
            "sv": "rosé",
        },
        "sparkling": {
            "en": "sparkling",
            "sk": "šumivé",
            "de": "schaumwein",
            "da": "mousserende",
            "it": "spumante",
            "es": "espumoso",
            "fi": "kuohuva",
            "sv": "mousserande",
        },
        "dessert": {
            "en": "dessert",
            "sk": "dezertné",
            "de": "dessertwein",
            "da": "dessert",
            "it": "dolce",
            "es": "de postre",
            "fi": "makea",
            "sv": "dessert",
        },
        "fortified": {
            "en": "fortified",
            "sk": "fortifikované",
            "de": "likörwein",
            "da": "hedvin",
            "it": "fortificato",
            "es": "fortificado",
            "fi": "väkevöity",
            "sv": "stark",
        },
    },
    "dryness": {
        "dry": {
            "en": "dry",
            "sk": "suché",
            "de": "trocken",
            "da": "tør",
            "it": "secco",
            "es": "seco",
            "fi": "kuiva",
            "sv": "torr",
        },
        "medium dry": {
            "en": "medium dry",
            "sk": "polosuché",
            "de": "halbtrocken",
            "da": "halvtør",
            "it": "abboccato",
            "es": "semi seco",
            "es_2": "semiseco",
            "fi": "puolikuiva",
            "sv": "halvtorr",
        },
        "medium sweet": {
            "en": "medium sweet",
            "sk": "polosladké",
            "de": "lieblich",
            "da": "halvsød",
            "it": "amabile",
            "es": "semi dulce",
            "es_2": "semidulce",
            "fi": "puolimakea",
            "sv": "halvsöt",
        },
        "sweet": {
            "en": "sweet",
            "sk": "sladké",
            "de": "süß",
            "da": "sød",
            "it": "dolce",
            "es": "dulce",
            "fi": "makea",
            "sv": "söt",
        },
    },
    "body": {
        "light bodied": {
            "en": "light bodied",
            "sk": "ľahké",
            "de": "leicht",
            "da": "let fyldig",
            "it": "di corpo leggero",
            "es": "cuerpo ligero",
            "fi": "kevyt",
            "sv": "lätt",
        },
        "medium bodied": {
            "en": "medium bodied",
            "sk": "stredné",
            "de": "mittelkräftig",
            "da": "medium fyldig",
            "it": "di medio corpo",
            "es": "cuerpo medio",
            "fi": "keskitäyteläinen",
            "sv": "medelfylligt",
            "sv_2": "medelfyllig",
        },
        "full bodied": {
            "en": "full bodied",
            "sk": "plné",
            "de": "vollmundig",
            "da": "fuld fyldig",
            "it": "di corpo pieno",
            "es": "cuerpo completo",
            "fi": "täyteläinen",
            "sv": "fylligt",
            "sv_2": "fyllig",
        },
    },
    "acidity": {
        "slightly acidic": {
            "en": "slightly acidic",
            "sk": "mierna",
            "de": "leicht säuerlich",
            "da": "let syrlig",
            "it": "poco acido",
            "es": "ligeramente ácido",
            "fi": "vähähappoinen",
            "sv": "låg syra",
        },
        "medium acidic": {
            "en": "medium acidic",
            "sk": "stredná",
            "de": "mittlere säure",
            "da": "medium syrlig",
            "it": "media acidità",
            "es": "acidez media",
            "fi": "keskihappoinen",
            "sv": "medelhög syra",
        },
        "acidity": {
            "en": "acidity",
            "sk": "vysoká",
            "de": "säurebetont",
            "da": "syrlig",
            "it": "acido",
            "es": "ácido",
            "fi": "happoinen",
            "sv": "hög syra",
        },
        "very acidic": {
            "en": "very acidic",
            "sk": "veľmi vysoká",
            "de": "sehr säuerlich",
            "da": "meget syrlig",
            "it": "molto acido",
            "es": "muy ácido",
            "fi": "erittäin happoinen",
            "sv": "mycket hög syra",
        },
    },
}


def create_reverse_map(translation_dict: dict) -> dict:
    reverse_map = {}
    for english_term, translations in translation_dict.items():
        for _, translated_term in translations.items():
            reverse_map[translated_term] = english_term
    return reverse_map


TRANSLATION_MAP = {
    field: create_reverse_map(translations)
    for field, translations in TRANSLATIONS.items()
}

COUNTRY_TRANSLATIONS_EN_MAP = {
    k.lower(): v
    for k, v in {
        "AUSTRIA": "Austria",
        "Alankomaat": "Netherlands",
        "Alemania": "Germany",
        "Alemania (Alsace)": "Germany",
        "Alsace": "France",
        "Alsaica": "France",
        "Alsenes": "France",
        "Anglicko": "England",
        "Australia": "Australia",
        "Australien": "Australia",
        "Austria": "Austria",
        "Austrália": "Australia",
        "Belgium": "Belgium",
        "Chile": "Chile",
        "Chili": "Chile",
        "Cile": "Chile",
        "Cina": "China",
        "Deutschland": "Germany",
        "ES": "Spain",
        "England": "England",
        "Englanti": "England",
        "Eslovenia": "Slovenia",
        "Espanja": "Spain",
        "España": "Spain",
        "Estados Unidos": "United States",
        "Etelä-Afrikka": "South Africa",
        "France": "France",
        "Francia": "France",
        "Francie": "France",
        "Francúzsko": "France",
        "Frankreich": "France",
        "Frankrig": "France",
        "Frankrike": "France",
        "Franska Rika": "France",
        "Franska Röna": "France",
        "Franska rika": "France",
        "Germania": "Germany",
        "Germany": "Germany",
        "Hungary": "Hungary",
        "Hungría": "Hungary",
        "Hunniska": "Hungary",
        "Inghilterra": "England",
        "Inglaterra": "England",
        "Italia": "Italy",
        "Italien": "Italy",
        "Italy": "Italy",
        "Itália": "Italy",
        "Itálie": "Italy",
        "Itálsko": "Italy",
        "Itävallat": "Austria",
        "Itävalta": "Austria",
        "Juhoafrická republika": "South Africa",
        "Južná Afrika": "South Africa",
        "Magyarország": "Hungary",
        "Marlborough": "New Zealand",
        "Maďarsko": "Hungary",
        "Nemecko": "Germany",
        "Neuseeland": "New Zealand",
        "New Zealand": "New Zealand",
        "Nový Zéland": "New Zealand",
        "Nueva Zelanda": "New Zealand",
        "Nuova Zelanda": "New Zealand",
        "Nya Zeeland": "New Zealand",
        "Oesterreich": "Austria",
        "Portogallo": "Portugal",
        "Portugal": "Portugal",
        "Portugalia": "Portugal",
        "Portugalsko": "Portugal",
        "Portugál": "Portugal",
        "Rakúsko": "Austria",
        "Ranska": "France",
        "Reino Unido": "United Kingdom",
        "Ruotsi": "Sweden",
        "Saksa": "Germany",
        "Slovakia": "Slovakia",
        "Slovenia": "Slovenia",
        "Slovenien": "Slovenia",
        "Slovenija": "Slovenia",
        "Slovensko": "Slovakia",
        "Slowenien": "Slovenia",
        "South Africa": "South Africa",
        "Spagna": "Spain",
        "Spain": "Spain",
        "Spanien": "Spain",
        "Spojené Kráľovstvo": "United Kingdom",
        "Spojené Spojené Kráľovstvá": "United Kingdom",
        "Spojené štáty": "United States",
        "Stati Uniti": "United States",
        "Storbritannien": "United Kingdom",
        "Sudafrica": "South Africa",
        "Sudáfrica": "South Africa",
        "Sveitsi": "Switzerland",
        "Sverige": "Sweden",
        "Switzerland": "Switzerland",
        "Sydafrika": "South Africa",
        "Südafrika": "South Africa",
        "Taliansko": "Italy",
        "Tyskland": "Germany",
        "USA": "United States",
        "Ungarn": "Hungary",
        "Ungern": "Hungary",
        "Ungheria": "Hungary",
        "United States": "United States",
        "Unkari": "Hungary",
        "Uusi-Seelanti": "New Zealand",
        "Vereinigte Staaten": "United States",
        "Yhdysvallat": "United States",
        "Österreich": "Austria",
        "Österrike": "Sweden",
        "Østrig": "Denmark",
        "Čile": "Chile",
        "Španielsko": "Spain",
        "Švajčiarsko": "Switzerland",
        "Argentina": "Argentina",
        "Czechia": "Czechia",
        "Georgia": "Georgia",
        "Greece": "Greece",
        "Lebanon": "Lebanon",
    }.items()
}
