"""
Google Gemini TTS voice metadata sourced from the public model card.

Reference: https://cloud.google.com/text-to-speech/docs/gemini-tts
"""

from __future__ import annotations

from typing import Final

# Voice names are paired with their documented genders so the higher-level builder
# can populate AIVoiceSelectionGoogle entries without additional lookups.
GEMINI_VOICE_NAMES: Final[tuple[tuple[str, str], ...]] = (
    ("Achernar", "female"),
    ("Achird", "male"),
    ("Algenib", "male"),
    ("Algieba", "male"),
    ("Alnilam", "male"),
    ("Aoede", "female"),
    ("Autonoe", "female"),
    ("Callirrhoe", "female"),
    ("Charon", "male"),
    ("Despina", "female"),
    ("Enceladus", "male"),
    ("Erinome", "female"),
    ("Fenrir", "male"),
    ("Gacrux", "female"),
    ("Iapetus", "male"),
    ("Kore", "female"),
    ("Laomedeia", "female"),
    ("Leda", "female"),
    ("Orus", "male"),
    ("Pulcherrima", "female"),
    ("Puck", "male"),
    ("Rasalgethi", "male"),
    ("Sadachbia", "male"),
    ("Sadaltager", "male"),
    ("Schedar", "male"),
    ("Sulafat", "female"),
    ("Umbriel", "male"),
    ("Vindemiatrix", "female"),
    ("Zephyr", "female"),
    ("Zubenelgenubi", "male"),
)

# Locale support list copied verbatim (including preview availability codes) so we
# can render every documented language/locale combination.
GEMINI_LOCALES: Final[tuple[str, ...]] = (
    "en-US",
    "af-ZA",
    "am-ET",
    "ar-001",
    "ar-EG",
    "az-AZ",
    "be-BY",
    "bg-BG",
    "bn-bd",
    "ca-ES",
    "ceb-PH",
    "cmn-cn",
    "cmn-tw",
    "cs-CZ",
    "da-DK",
    "de-DE",
    "el-GR",
    "en-AU",
    "en-GB",
    "en-IN",
    "es-419",
    "es-ES",
    "es-MX",
    "et-EE",
    "eu-ES",
    "fa-IR",
    "fi-FI",
    "fil-PH",
    "fr-CA",
    "fr-FR",
    "gl-ES",
    "gu-IN",
    "he-IL",
    "hi-IN",
    "hr-HR",
    "ht-HT",
    "hu-HU",
    "hy-AM",
    "id-ID",
    "is-IS",
    "it-IT",
    "ja-JP",
    "jv-JV",
    "ka-GE",
    "kn-IN",
    "kok-in",
    "ko-KR",
    "la-VA",
    "lb-LU",
    "lo-LA",
    "lt-IT",
    "lv-LV",
    "mai-IN",
    "mg-MG",
    "mk-MK",
    "ml-IN",
    "mn-MN",
    "mr-IN",
    "ms-MY",
    "my-MM",
    "nb-NO",
    "ne-NP",
    "nl-NL",
    "nn-NO",
    "or-IN",
    "pa-IN",
    "pl-PL",
    "ps-AF",
    "pt-BR",
    "pt-PT",
    "ro-RO",
    "ru-RU",
    "sd-IN",
    "si-LK",
    "sk-SK",
    "sl-SI",
    "sq-AL",
    "sr-RS",
    "sv-SE",
    "sw-KE",
    "ta-IN",
    "te-IN",
    "th-TH",
    "tr-TR",
    "uk-UA",
    "ur-PK",
    "vi-VN",
)
