from enum import auto

from pydantic import BaseModel

from songmam.utils import AutoName


class Locale(AutoName):
    """https://developers.facebook.com/docs/messenger-platform/messenger-profile/supported-locales"""
    default = auto()
    en_US = auto()
    ca_ES = auto()
    cs_CZ = auto()
    cx_PH = auto()
    cy_GB = auto()
    da_DK = auto()
    de_DE = auto()
    eu_ES = auto()
    en_UD = auto()
    es_LA = auto()
    es_ES = auto()
    gn_PY = auto()
    fi_FI = auto()
    fr_FR = auto()
    gl_ES = auto()
    hu_HU = auto()
    it_IT = auto()
    ja_JP = auto()
    ko_KR = auto()
    nb_NO = auto()
    nn_NO = auto()
    nl_NL = auto()
    fy_NL = auto()
    pl_PL = auto()
    pt_BR = auto()
    pt_PT = auto()
    ro_RO = auto()
    ru_RU = auto()
    sk_SK = auto()
    sl_SI = auto()
    sv_SE = auto()
    th_TH = auto()
    tr_TR = auto()
    ku_TR = auto()
    zh_CN = auto()
    zh_HK = auto()
    zh_TW = auto()
    af_ZA = auto()
    sq_AL = auto()
    hy_AM = auto()
    az_AZ = auto()
    be_BY = auto()
    bn_IN = auto()
    bs_BA = auto()
    bg_BG = auto()
    hr_HR = auto()
    nl_BE = auto()
    en_GB = auto()
    et_EE = auto()
    fo_FO = auto()
    fr_CA = auto()
    ka_GE = auto()
    el_GR = auto()
    gu_IN = auto()
    hi_IN = auto()
    is_IS = auto()
    id_ID = auto()
    ga_IE = auto()
    jv_ID = auto()
    kn_IN = auto()
    kk_KZ = auto()
    lv_LV = auto()
    lt_LT = auto()
    mk_MK = auto()
    mg_MG = auto()
    ms_MY = auto()
    mt_MT = auto()
    mr_IN = auto()
    mn_MN = auto()
    ne_NP = auto()
    pa_IN = auto()
    sr_RS = auto()
    so_SO = auto()
    sw_KE = auto()
    tl_PH = auto()
    ta_IN = auto()
    te_IN = auto()
    ml_IN = auto()
    uk_UA = auto()
    uz_UZ = auto()
    vi_VN = auto()
    km_KH = auto()
    tg_TJ = auto()
    ar_AR = auto()
    he_IL = auto()
    ur_PK = auto()
    fa_IR = auto()
    ps_AF = auto()
    my_MM = auto()
    qz_MM = auto()
    or_IN = auto()
    si_LK = auto()
    rw_RW = auto()
    cb_IQ = auto()
    ha_NG = auto()
    ja_KS = auto()
    br_FR = auto()
    tz_MA = auto()
    co_FR = auto()
    as_IN = auto()
    ff_NG = auto()
    sc_IT = auto()
    sz_PL = auto()

class ThingWithLocale(BaseModel):
    locale: Locale = Locale.default
