from .. import Provider as CurrencyProvider


class Provider(CurrencyProvider):
    # Format: (code, name)
    currencies = (
        ("AED", "Dírham de los Emiratos Árabes Unidos"),
        ("AFN", "Afghaní"),
        ("ALL", "Lek albanés"),
        ("AMD", "Dram armenio"),
        ("ANG", "Florín de las Antillas Holandesas"),
        ("AOA", "Kwanza angoleño"),
        ("ARS", "Peso argentino"),
        ("AUD", "Dólar australiano"),
        ("AWG", "Florín arubeño"),
        ("AZN", "Manat azerbaiyano"),
        ("BAM", "Marco bosnioherzegovino"),
        ("BBD", "Dólar barbadense"),
        ("BDT", "Taka bangladesí"),
        ("BGN", "Lev búlgaro"),
        ("BHD", "Dinar bahreiní"),
        ("BIF", "Franco burundés"),
        ("BMD", "Dólar de Bermudas"),
        ("BND", "Dólar bruneano"),
        ("BOB", "Boliviano"),
        ("BRL", "Real brasileño"),
        ("BSD", "Dólar bahameño"),
        ("BTN", "Ngultrum butanés"),
        ("BWP", "Pula de Botswana"),
        ("BYR", "Rublio bielurruso"),
        ("BZD", "Dólar beliceño"),
        ("CAD", "Dólar canadiense"),
        ("CDF", "Franco congolés"),
        ("CHF", "Franco suizo"),
        ("CLP", "Peso chileno"),
        ("CNY", "Yuan"),
        ("COP", "Peso colombiano"),
        ("CRC", "Colón costarricense"),
        ("CUC", "Peso cubano convertible"),
        ("CUP", "Peso subano"),
        ("CVE", "Escudo de Cabo Verde"),
        ("CZK", "Corona checa"),
        ("DJF", "Franco yibutiano"),
        ("DKK", "Corona danesa"),
        ("DOP", "Peso dominicano"),
        ("DZD", "Dinar argelino"),
        ("EGP", "Libra egipcia"),
        ("ERN", "Nafka"),
        ("ETB", "Bir de Etiopía"),
        ("EUR", "Euro"),
        ("FJD", "Dólar fiyiano"),
        ("FKP", "Libra de las islas Falkland"),
        ("GBP", "Libra esterlina"),
        ("GEL", "Larí georgiano"),
        ("GGP", "Libra de Guernsey"),
        ("GHS", "Cedi"),
        ("GIP", "Libra de Gibraltar"),
        ("GMD", "Dalasi"),
        ("GNF", "Franco guineano"),
        ("GTQ", "Quetzal guatemalteco"),
        ("GYD", "Dólar guyanés"),
        ("HKD", "Dólar hongkonés"),
        ("HNL", "Lempira hondureño"),
        ("HRK", "Kuna croata"),
        ("HTG", "Gourde haitiano"),
        ("HUF", "Forinto húngaro"),
        ("IDR", "Rupia indonesia"),
        ("ILS", "Séquel israelí"),
        ("NIS", "Nuevo Séquel israelí"),
        ("IMP", "Libra manesa"),
        ("INR", "Rupia india"),
        ("IQD", "Dinar iraquí"),
        ("IRR", "Rial iraní"),
        ("ISK", "Corona islandesa"),
        ("JEP", "Libra de Jersey"),
        ("JMD", "Dólar jamaicano"),
        ("JOD", "Dinar jordano"),
        ("JPY", "Yen japonés"),
        ("KES", "Chelín keniano"),
        ("KGS", "Som kirguís"),
        ("KHR", "Riel camboyano"),
        ("KMF", "Franco comorense"),
        ("KPW", "Won norcoreano"),
        ("KRW", "Krahn Occidental"),
        ("KWD", "Dinar kuwaití"),
        ("KYD", "Dólar de las islas Cayman"),
        ("KZT", "Tenge kazako"),
        ("LAK", "Kip laosiano"),
        ("LBP", "Libra libanesa"),
        ("LKR", "Rupia esrilanquesa"),
        ("LRD", "Dólar liberiano"),
        ("LSL", "Loti lesothense"),
        ("LTL", "Litas lituana"),
        ("LYD", "Dinar libio"),
        ("MAD", "Dirham marroquí"),
        ("MDL", "Leu moldavo"),
        ("MGA", "Ariary malgache"),
        ("MKD", "Denar normacedonio"),
        ("MMK", "Kyat birmano"),
        ("MNT", "Tugrik mongol"),
        ("MOP", "Pataca macaense"),
        ("MRO", "Ouguiya mauritano"),
        ("MUR", "Rupia mauritana"),
        ("MVR", "Rupia de Maldivas"),
        ("MWK", "Kwacha malauí"),
        ("MXN", "Peso mexicano"),
        ("MYR", "Ringgit"),
        ("MZN", "Metical mozambiqueño"),
        ("NAD", "Dólar namibio"),
        ("NGN", "Naira nigeriano"),
        ("NIO", "Córdoba nicaragüense"),
        ("NOK", "Corona noruega"),
        ("NPR", "Rupia nepalí"),
        ("NZD", "Dólar neozelandés"),
        ("OMR", "Rial omaní"),
        ("PAB", "Balboa panameño"),
        ("PEN", "Sol peruano"),
        ("PGK", "Kina"),
        ("PHP", "Peso filipino"),
        ("PKR", "Rupia pakistaní"),
        ("PLN", "Złoty polaco"),
        ("PYG", "Guaraní paraguayo"),
        ("QAR", "Riyal catarí"),
        ("RON", "Leu rumano"),
        ("RSD", "Dinar serbio"),
        ("RUB", "Rublo ruso"),
        ("RWF", "Franco ruandés"),
        ("SAR", "Riyal saudí"),
        ("SBD", "Dólar de las islas Solomon"),
        ("SCR", "Rupia seychellense"),
        ("SDG", "Libra sudanesa"),
        ("SEK", "Corona sueca"),
        ("SGD", "Dólar de Singapur"),
        ("SHP", "Libra de Santa Elena"),
        ("SLL", "Leona"),
        ("SOS", "Chelín somalí"),
        ("SPL", "Luigino"),
        ("SRD", "Dólar surinamés"),
        ("STD", "Dobra santotomense"),
        ("SVC", "Colón salvadoreño"),
        ("SYP", "Libra siria"),
        ("SZL", "Lilangeni"),
        ("THB", "Baht tailandés"),
        ("TJS", "Somoni tayiko"),
        ("TMT", "Manat turcomano"),
        ("TND", "Dinar tunecino"),
        ("TOP", "Pa'anga tongano"),
        ("TRY", "Lira turca"),
        ("TTD", "Dólar de Trinidad and Tobago"),
        ("TVD", "Dólar tuvaluano"),
        ("TWD", "Nuevo dólar taiwanés"),
        ("TZS", "Chelín tanzano"),
        ("UAH", "Grivna ucraniano"),
        ("UGX", "Chelín ugandés"),
        ("USD", "Dólar de Estados Unidos"),
        ("UYU", "Peso uruguayo"),
        ("UZS", "Soʻm Uzbekistani"),
        ("VEF", "Bolívar venezolano"),
        ("VND", "Đồng vietnamita"),
        ("VUV", "Vanuatu vatu"),
        ("WST", "Tālā samoano"),
        ("XAF", "Franco centro africano"),
        ("XCD", "Dólar del Caribe Oriental"),
        ("XDR", "Derechos especiales de giro"),
        ("XOF", "Franco de África occidental"),
        ("XPF", "Franco CFP"),
        ("YER", "Rial yemení"),
        ("ZAR", "Rand sudafricano"),
        ("ZMW", "Kwacha zambiano"),
        ("ZWD", "Dólar zimbabuense"),
    )

    price_formats = ["#,##", "%#,##", "%##,##", "%.###,##", "%#.###,##"]

    def pricetag(self) -> str:
        return self.numerify(self.random_element(self.price_formats)) + "\N{no-break space}\N{euro sign}"
