from collections import OrderedDict

from .. import Provider as PersonProvider


class Provider(PersonProvider):
    formats_female = OrderedDict((
        ('{{first_name_female}} {{last_name_female}}', 0.97),
        ('{{prefix_female}} {{first_name_female}} {{last_name_female}}', 0.015),
        ('{{first_name_female}} {{last_name_female}} {{suffix}}', 0.02),
        ('{{prefix_female}} {{first_name_female}} {{last_name_female}} {{suffix}}', 0.005),
    ))

    formats_male = OrderedDict((
        ('{{first_name_male}} {{last_name_male}}', 0.97),
        ('{{prefix_male}} {{first_name_male}} {{last_name_male}}', 0.015),
        ('{{first_name_male}} {{last_name_male}} {{suffix}}', 0.02),
        ('{{prefix_male}} {{first_name_male}} {{last_name_male}} {{suffix}}', 0.005),
    ))

    formats = formats_male.copy()
    formats.update(formats_female)

    first_names_male = (
        'Adam',
        'Alexander',
        'Alexandr',
        'Aleš',
        'Alois',
        'Antonín',
        'Arnošt',
        'Bedřich',
        'Bohumil',
        'Bohumír',
        'Bohuslav',
        'Břetislav',
        'Dalibor',
        'Daniel',
        'David',
        'Denis',
        'Dominik',
        'Dušan',
        'Eduard',
        'Emil',
        'Erik',
        'Filip',
        'František',
        'Hynek',
        'Igor',
        'Ivan',
        'Ivo',
        'Jakub',
        'Jan',
        'Jaromír',
        'Jaroslav',
        'Jindřich',
        'Jiří',
        'Josef',
        'Jozef',
        'Ján',
        'Kamil',
        'Karel',
        'Kryštof',
        'Ladislav',
        'Leoš',
        'Libor',
        'Lubomír',
        'Luboš',
        'Ludvík',
        'Luděk',
        'Lukáš',
        'Marcel',
        'Marek',
        'Marian',
        'Martin',
        'Matyáš',
        'Matěj',
        'Michael',
        'Michal',
        'Milan',
        'Miloslav',
        'Miloš',
        'Miroslav',
        'Oldřich',
        'Ondřej',
        'Otakar',
        'Patrik',
        'Pavel',
        'Peter',
        'Petr',
        'Přemysl',
        'Radek',
        'Radim',
        'Radomír',
        'Radovan',
        'René',
        'Richard',
        'Robert',
        'Robin',
        'Roman',
        'Rostislav',
        'Rudolf',
        'Samuel',
        'Stanislav',
        'Tadeáš',
        'Tomáš',
        'Vasyl',
        'Viktor',
        'Vilém',
        'Vladimír',
        'Vladislav',
        'Vlastimil',
        'Vojtěch',
        'Vratislav',
        'Václav',
        'Vít',
        'Vítězslav',
        'Zbyněk',
        'Zdeněk',
        'Šimon',
        'Štefan',
        'Štěpán')

    first_names_female = (
        'Adéla',
        'Alena',
        'Alexandra',
        'Alice',
        'Alžběta',
        'Andrea',
        'Aneta',
        'Anežka',
        'Anna',
        'Barbora',
        'Blanka',
        'Blažena',
        'Bohumila',
        'Božena',
        'Dagmar',
        'Dana',
        'Daniela',
        'Danuše',
        'Denisa',
        'Dominika',
        'Drahomíra',
        'Eliška',
        'Emilie',
        'Eva',
        'Františka',
        'Gabriela',
        'Hana',
        'Helena',
        'Ilona',
        'Irena',
        'Iva',
        'Ivana',
        'Iveta',
        'Jana',
        'Jarmila',
        'Jaroslava',
        'Jindřiška',
        'Jitka',
        'Jiřina',
        'Julie',
        'Kamila',
        'Karolína',
        'Kateřina',
        'Klára',
        'Kristina',
        'Kristýna',
        'Květa',
        'Květoslava',
        'Ladislava',
        'Lenka',
        'Libuše',
        'Lucie',
        'Ludmila',
        'Magdalena',
        'Magdaléna',
        'Marcela',
        'Marie',
        'Markéta',
        'Marta',
        'Martina',
        'Michaela',
        'Milada',
        'Milena',
        'Miloslava',
        'Miluše',
        'Miroslava',
        'Monika',
        'Mária',
        'Naděžda',
        'Natálie',
        'Nela',
        'Nikol',
        'Nikola',
        'Olga',
        'Pavla',
        'Pavlína',
        'Petra',
        'Radka',
        'Renata',
        'Renáta',
        'Romana',
        'Růžena',
        'Sabina',
        'Simona',
        'Soňa',
        'Stanislava',
        'Sára',
        'Tereza',
        'Vendula',
        'Veronika',
        'Viktorie',
        'Vladimíra',
        'Vlasta',
        'Věra',
        'Zdenka',
        'Zdeňka',
        'Zuzana',
        'Štěpánka',
        'Šárka',
        'Žaneta')

    first_names = first_names_male + first_names_female

    last_names_male = (
        'Bartoš',
        'Beneš',
        'Blažek',
        'Bláha',
        'Doležal',
        'Dušek',
        'Dvořák',
        'Fiala',
        'Holub',
        'Horák',
        'Hájek',
        'Jelínek',
        'Kadlec',
        'Kolář',
        'Kopecký',
        'Kratochvíl',
        'Krejčí',
        'Král',
        'Kučera',
        'Kříž',
        'Malý',
        'Marek',
        'Mareš',
        'Mašek',
        'Moravec',
        'Novotný',
        'Novák',
        'Němec',
        'Pokorný',
        'Polák',
        'Pospíšil',
        'Procházka',
        'Růžička',
        'Sedláček',
        'Soukup',
        'Svoboda',
        'Urban',
        'Vaněk',
        'Veselý',
        'Vlček',
        'Zeman',
        'Čermák',
        'Černý',
        'Říha',
        'Šimek',
        'Štěpánek',
        'Šťastný')

    last_names_female = (
        'Bartošová',
        'Benešová',
        'Beranová',
        'Blažková',
        'Bláhová',
        'Doležalová',
        'Dušková',
        'Dvořáková',
        'Fialová',
        'Holubová',
        'Horáková',
        'Hájková',
        'Jandová',
        'Jelínková',
        'Kadlecová',
        'Kolářová',
        'Kopecká',
        'Kratochvílová',
        'Krejčová',
        'Králová',
        'Kučerová',
        'Křížová',
        'Machová',
        'Malá',
        'Marešová',
        'Marková',
        'Mašková',
        'Moravcová',
        'Novotná',
        'Nováková',
        'Němcová',
        'Pokorná',
        'Poláková',
        'Pospíšilová',
        'Procházková',
        'Růžičková',
        'Sedláčková',
        'Soukupová',
        'Svobodová',
        'Tichá',
        'Urbanová',
        'Vacková',
        'Vaňková',
        'Veselá',
        'Vlčková',
        'Vávrová',
        'Zemanová',
        'Čermáková',
        'Černá',
        'Říhová',
        'Šimková',
        'Štěpánková',
        'Šťastná')

    last_names = last_names_male + last_names_female

    degrees = ('JUDr.', 'Ing.', 'Bc.', 'Mgr.', 'MUDr.', 'RNDr.')

    prefixes_male = ('pan', ) + degrees

    prefixes_female = ('paní', 'slečna') + degrees

    suffixes = ('CSc.', 'DiS.', 'Ph.D.', 'Th.D.')
