from .. import Provider as PersonProvider


class Provider(PersonProvider):
    formats = (
        "{{first_name_male}} {{last_name_male}}",
        "{{first_name_male}} {{last_name_male}}",
        "{{first_name_male}} {{last_name_male}}",
        "{{first_name_male}} {{last_name_male}}",
        "{{first_name_male}} {{last_name_male}}-{{last_name_male}}",
        "{{first_name_female}} {{last_name_female}}",
        "{{first_name_female}} {{last_name_female}}",
        "{{first_name_female}} {{last_name_female}}",
        "{{first_name_female}} {{last_name_female}}",
        "{{first_name_female}} {{last_name_female}}-{{last_name_female}}",
        "{{prefix_male}} {{first_name_male}} {{last_name_male}}",
        "{{prefix_female}} {{first_name_female}} {{last_name_female}}",
        "{{prefix_male}} {{first_name_male}} {{last_name_male}}",
        "{{prefix_female}} {{first_name_female}} {{last_name_female}}",
    )

    # names from https://en.wikipedia.org/wiki/Ghanaian_name,
    # https://buzzghana.com/ghanaian-names/,
    # https://en.wikipedia.org/wiki/Akan_names,

    first_names_male = (
        "Aaron",
        "Abeiku",
        "Adam",
        "Adrian",
        "Akwesi",
        "Albert",
        "Alex",
        "Alexander",
        "Andrew",
        "Anthony",
        "Antony",
        "Arthur",
        "Ben",
        "Benjamin",
        "Bernard",
        "Bruce",
        "Carl",
        "Charles",
        "Christian",
        "Clifford",
        "Colins",
        "Daniel",
        "Danny",
        "David",
        "Denis",
        "Dennis",
        "Derrick",
        "Dominic",
        "Donald",
        "Douglas",
        "Duncan",
        "Edward",
        "Ekow",
        "Elliot",
        "Elliott",
        "Eric",
        "Fiifi",
        "Francis",
        "Frank",
        "Frederick",
        "George",
        "Gerald",
        "Gordon",
        "Graham",
        "Gregory",
        "Harry",
        "Henry",
        "Howard",
        "Isaac",
        "Akwasi",
        "Jack",
        "Jacob",
        "Jake",
        "James",
        "Jason",
        "Jeffrey",
        "Jeremy",
        "Joe",
        "Joel",
        "John",
        "Jonathan",
        "Joojo",
        "Joseph",
        "Josh",
        "Joshua",
        "Josiah",
        "Julian",
        "Justin",
        "Karl",
        "Kenneth",
        "Kevin",
        "Kofi",
        "Kojo",
        "Kujoe",
        "Kwabena",
        "Kwadwo",
        "Kwaku",
        "Kwame",
        "Kwamena",
        "Kwasi",
        "Kweku",
        "Kwesi",
        "Kyle",
        "Lawrence",
        "Leslie",
        "Louis",
        "Luke",
        "Malcolm",
        "Marcus",
        "Mark",
        "Martin",
        "Mathew",
        "Matthew",
        "Max",
        "Michael",
        "Nathan",
        "Nicholas",
        "Nigel",
        "Oliver",
        "Patrick",
        "Paul",
        "Peter",
        "Philip",
        "Phillip",
        "Raymond",
        "Richard",
        "Robert",
        "Roger",
        "Ronald",
        "Russell",
        "Sam",
        "Samuel",
        "Shaun",
        "Simon",
        "Stanley",
        "Stephen",
        "Steven",
        "Terence",
        "Thomas",
        "Timothy",
        "Tom",
        "Tony",
        "Victor",
        "Vincent",
        "William",
        "Yaw",
    )

    first_names_female = (
        "Aba",
        "Abena",
        "Abigail",
        "Adwoa",
        "Afia",
        "Afua",
        "Akos",
        "Akosua",
        "Akua",
        "Akumaa",
        "Alice",
        "Ama",
        "Amanda",
        "Amber",
        "Amelia",
        "Angela",
        "Ann",
        "Annette",
        "Awesi",
        "Baaba",
        "Barbara",
        "Beatrice",
        "COmfort",
        "Caroline",
        "Catherine",
        "Charlotte",
        "Christina",
        "Comfort",
        "Constance",
        "Danielle",
        "Deborah",
        "Debra",
        "Denise",
        "Dora",
        "Dorcas",
        "Dorothy",
        "Eliabeth",
        "Elizabeth",
        "Emily",
        "Emma",
        "Ernestina",
        "Esi",
        "Eunice",
        "Felicia",
        "Francesca",
        "Gemma",
        "Georgia",
        "Georgina",
        "Gifty",
        "Grace",
        "Grace",
        "Hannabel",
        "Hannah",
        "Harriet",
        "Helen",
        "Irene",
        "Janet",
        "Janet",
        "Janice",
        "Jasmine",
        "Jennifer",
        "Jessica",
        "Jill",
        "Joanna",
        "Josephine",
        "Joyce",
        "Joyce",
        "Judith",
        "Julia",
        "Juliana",
        "Julie",
        "Karen",
        "Kate",
        "Katherine",
        "Katy",
        "Lawrencia",
        "Linda",
        "Lisa",
        "Lorraine",
        "Lucy",
        "Lucy",
        "Lydia",
        "Lydia",
        "Mandy",
        "Margaret",
        "Margaret",
        "Maria",
        "Marian",
        "Marilyn",
        "Mary",
        "Mary",
        "Maureen",
        "Michelle",
        "Millicent",
        "Nana Ama",
        "Naomi",
        "Natalie",
        "Natasha",
        "Nicola",
        "Nimakoah",
        "Olivia",
        "Pamela",
        "Patricia",
        "Paula",
        "Priscilla",
        "Rachael",
        "Rachel",
        "Rebecca",
        "Rebecca",
        "Regina",
        "Rita",
        "Roselyn",
        "Rosemary",
        "Rosemary",
        "Ruth",
        "Salomey",
        "Samantha",
        "Sandra",
        "Sarah",
        "Sarah",
        "Sarah",
        "Sharon",
        "Sheila",
        "Shirley",
        "Stephanie",
        "Susan",
        "Susan",
        "Sylvia",
        "Teresa",
        "Tina",
        "Tracy",
        "Vanessa",
        "Veronica",
        "Victoria",
        "Vida",
        "Wendy",
        "Yaa",
        "Yvonne",
    )

    first_names = first_names_male + first_names_female

    last_names_male = (
        "Acheampong",
        "Adomah",
        "Adomako",
        "Adu",
        "Adusei",
        "Adutwum",
        "Afirifa",
        "Afoakwa",
        "Agyapong",
        "Agyapong",
        "Agyare",
        "Agyei",
        "Agyemang",
        "Ahortor",
        "Akoto",
        "Akowua",
        "Akyeamfuɔ",
        "Akyeampong",
        "Akyena",
        "Akyerεko",
        "Amo",
        "Amoa",
        "Amoako",
        "Amoasi",
        "Ampadu",
        "Ampofo",
        "Amponsah",
        "Andorful",
        "Ankra",
        "Anokye",
        "Ansa",
        "Antwi",
        "Antwi",
        "Appia",
        "Appiah",
        "Asamoa",
        "Asamoah",
        "Asante",
        "Asare",
        "Asenso",
        "Asiama",
        "Asiedu",
        "Ata",
        "Awuah",
        "Baa",
        "Baafi",
        "Baah",
        "Baawia",
        "Badu",
        "Boadi",
        "Boadu",
        "Boahen",
        "Boakye",
        "Boaten",
        "Boateng",
        "Bona",
        "Bonsra",
        "Bonsu",
        "Daako",
        "Danso",
        "Darko",
        "Donkor",
        "Duah",
        "Dwamena",
        "Fofie",
        "Fosu",
        "Gyamfi",
        "Gyasi",
        "Karikari",
        "Koomson",
        "Kumi",
        "Kusi",
        "Kwaakye",
        "Kwarteng",
        "Kyei",
        "Mensa",
        "Mensah",
        "Nkansa",
        "Nkansah",
        "Nkrumah",
        "Nsia",
        "Nti",
        "Ntiamoa",
        "Ntim",
        "Nyaako",
        "Nyame",
        "Nyantakyi",
        "Obeng",
        "Ofori",
        "Ofosu",
        "Okyere",
        "Omani",
        "Opoku",
        "Oppong",
        "Opuku",
        "Osei",
        "Oti",
        "Otiwa",
        "Otuo",
        "Owusu",
        "Prempeh",
        "Quartey",
        "Safo",
        "Sarpong",
        "Takyi",
        "Tawia",
        "Tutu",
        "Tweneboa",
        "Twumasi",
        "Wiafe",
        "Yaamoa",
        "Yawson",
        "Yeboa",
        "Yeboah",
        "Yirenkyi",
    )

    last_names_female = (
        "Aboraa",
        "Abrafi",
        "Acheampong",
        "Adoma",
        "Adomah",
        "Adomako",
        "Adu",
        "Adusei",
        "Adutwum",
        "Adutwumwaa",
        "Adwubi",
        "Afirifa",
        "Afoakwa",
        "Afrakomaa",
        "Agyapomaa",
        "Agyapong",
        "Agyapong",
        "Agyare",
        "Agyei",
        "Agyeiwaa",
        "Agyemang",
        "Ahortor",
        "Akoaa",
        "Akoto",
        "Akowua",
        "Akyaa",
        "Akyeamfuɔ",
        "Akyeampomaa",
        "Akyeampong",
        "Akyena",
        "Akyerε",
        "Akyerεko",
        "Akɔmaa",
        "Amo",
        "Amoa",
        "Amoako",
        "Amoakowaa",
        "Amoanimaa",
        "Amoasi",
        "Ampadu",
        "Ampofo",
        "Ampofowaa",
        "Ampoma",
        "Amponsa",
        "Amponsa",
        "Andorful",
        "Anima",
        "Ankra",
        "Anokye",
        "Ansa",
        "Ansomaa",
        "Ansomah",
        "Antwi",
        "Antwi",
        "Antwiwaa",
        "Appia",
        "Appiah",
        "Asamoa",
        "Asamoah",
        "Asante",
        "Asantewaa",
        "Asare",
        "Asenso",
        "Asiama",
        "Asiedu",
        "Asieduwaa",
        "Ata",
        "Ataa",
        "Awuah",
        "Baa",
        "Baafi",
        "Baah",
        "Baawia",
        "Badu",
        "Boadi",
        "Boadu",
        "Boahen",
        "Boakye",
        "Boakye",
        "Boakyewaa",
        "Boatemaa",
        "Boatemaah",
        "Boaten",
        "Boateng",
        "Bona",
        "Bonsra",
        "Bonsu",
        "Daako",
        "Daakoaa",
        "Danso",
        "Darko",
        "Donkor",
        "Duah",
        "Dufie",
        "Dwamena",
        "Fofie",
        "Foriwaa",
        "Fosu",
        "Fosua",
        "Frema",
        "Frimpomaa",
        "Gyamfi",
        "Gyamfi",
        "Gyamfiaa",
        "Gyasi",
        "Gyasiwaa",
        "Karikari",
        "Koomson",
        "Kumi",
        "Kusi",
        "Kusiwaa",
        "Kwaakye",
        "Kwaakyewaa",
        "Kwartemaa",
        "Kwarteng",
        "Kyei",
        "Kyeiwaa",
        "Kyerewaa",
        "Mansa",
        "Mensa",
        "Mensah",
        "Nkansa",
        "Nkansah",
        "Nkrumah",
        "Nsia",
        "Nti",
        "Ntiamoa",
        "Ntim",
        "Nyaako",
        "Nyaakoaa",
        "Nyame",
        "Nyantakyi",
        "Obeng",
        "Ofori",
        "Ofosu",
        "Okyere",
        "Okyere",
        "Omani",
        "Opoku",
        "Oppong",
        "Opuku",
        "Osei",
        "Oti",
        "Otiwa",
        "Otuo",
        "Owusu",
        "Owusuwaa",
        "Pokuaa",
        "Pomaa",
        "Prempeh",
        "Quartey",
        "Safo",
        "Safo",
        "Safoaa",
        "Sarpong",
        "Serwaa",
        "Takyi",
        "Tawia",
        "Tiwaa",
        "Tutu",
        "Tweneboa",
        "Twumasi",
        "Wiafe",
        "Yaamoa",
        "Yawson",
        "Yeboa",
        "Yeboah",
        "Yirenkyi",
    )

    last_names = last_names_male + last_names_female

    prefixes_female = (
        "Mrs.",
        "Ms.",
        "Miss",
        "Dr.",
        "Mama",
        "Maame",
        "Awura",
        "Sista",
        "Osofo Maame",
    )

    prefixes_male = ("Mr.", "Dr.", "Agya", "Owura", "Osofo")
