from .. import Provider as PersonProvider


class Provider(PersonProvider):
    """Person provider for mk_MK locale (Macedonian).

    Sources:

    - https://www.stat.gov.mk/Iminja_Preziminja.aspx (State Statistical Office of North Macedonia)
    - https://www.behindthename.com/names/usage/macedonian
    """

    first_names_male = (
        "Александар",
        "Алексеј",
        "Андреј",
        "Антон",
        "Арсен",
        "Атанас",
        "Благој",
        "Бојан",
        "Борис",
        "Борче",
        "Бранко",
        "Васил",
        "Видое",
        "Влатко",
        "Гоце",
        "Горан",
        "Дамјан",
        "Даниел",
        "Дарко",
        "Дејан",
        "Димитар",
        "Доне",
        "Драган",
        "Душан",
        "Ѓорги",
        "Ѓорче",
        "Емил",
        "Жарко",
        "Зоран",
        "Иван",
        "Игор",
        "Илија",
        "Јане",
        "Јован",
        "Јовче",
        "Кирил",
        "Коста",
        "Крсте",
        "Кузман",
        "Лазар",
        "Лука",
        "Марјан",
        "Марко",
        "Методи",
        "Михаил",
        "Митко",
        "Момчило",
        "Наум",
        "Никола",
        "Огнен",
        "Павле",
        "Петар",
        "Петре",
        "Ристо",
        "Сашо",
        "Симон",
        "Слободан",
        "Стефан",
        "Стојан",
        "Тихомир",
        "Тодор",
        "Томе",
        "Трајан",
        "Трајче",
        "Филип",
        "Христо",
        "Цветан",
        "Чедо",
    )

    first_names_female = (
        "Александра",
        "Ана",
        "Ангела",
        "Анета",
        "Анита",
        "Билјана",
        "Благица",
        "Валентина",
        "Василка",
        "Васка",
        "Весна",
        "Виолета",
        "Гордана",
        "Даница",
        "Данче",
        "Дарија",
        "Димка",
        "Драгана",
        "Елена",
        "Елизабета",
        "Емилија",
        "Иванка",
        "Јасмина",
        "Јована",
        "Катерина",
        "Кристина",
        "Лилјана",
        "Лина",
        "Магдалена",
        "Маја",
        "Марија",
        "Марина",
        "Мартина",
        "Милена",
        "Мирјана",
        "Надица",
        "Наташа",
        "Невена",
        "Нина",
        "Оливера",
        "Роза",
        "Сања",
        "Сара",
        "Симона",
        "Снежана",
        "Соња",
        "Софија",
        "Стефанија",
        "Сузана",
        "Тања",
        "Теодора",
        "Тијана",
        "Цвета",
        "Цветанка",
    )

    last_names_male = (
        "Алексовски",
        "Андоновски",
        "Апостолов",
        "Арсовски",
        "Атанасов",
        "Бојаџиев",
        "Василев",
        "Велјанов",
        "Велков",
        "Гавриловски",
        "Георгиев",
        "Глигоров",
        "Ѓоргиев",
        "Ѓорѓиевски",
        "Гроздановски",
        "Дамјановски",
        "Дешановски",
        "Димитриев",
        "Димовски",
        "Донев",
        "Дурловски",
        "Заев",
        "Зафировски",
        "Иванов",
        "Илиев",
        "Јанев",
        "Јовановски",
        "Јовчев",
        "Климовски",
        "Коцев",
        "Крстев",
        "Крстески",
        "Лазаревски",
        "Лазов",
        "Марковски",
        "Мартиновски",
        "Матевски",
        "Митревски",
        "Михајловски",
        "Младеновски",
        "Мојсов",
        "Мусијановски",
        "Наумовски",
        "Николов",
        "Николовски",
        "Пановски",
        "Петковски",
        "Петровски",
        "Поповски",
        "Ристовски",
        "Симоновски",
        "Спасов",
        "Спасовски",
        "Стефановски",
        "Стојановски",
        "Тодоровски",
        "Трајковски",
        "Христов",
        "Цветковски",
        "Чулев",
        "Шакири",
    )

    last_names_female = (
        "Алексовска",
        "Андоновска",
        "Апостолова",
        "Арсовска",
        "Атанасова",
        "Бојаџиева",
        "Василева",
        "Велјанова",
        "Велкова",
        "Гавриловска",
        "Георгиева",
        "Глигорова",
        "Ѓоргиева",
        "Ѓорѓиевска",
        "Гроздановска",
        "Дамјановска",
        "Дешановска",
        "Димитриева",
        "Димовска",
        "Донева",
        "Дурловска",
        "Заева",
        "Зафировска",
        "Иванова",
        "Илиева",
        "Јанева",
        "Јовановска",
        "Јовчева",
        "Климовска",
        "Коцева",
        "Крстева",
        "Крстеска",
        "Лазаревска",
        "Лазова",
        "Марковска",
        "Мартиновска",
        "Матевска",
        "Митревска",
        "Михајловска",
        "Младеновска",
        "Мојсова",
        "Николова",
        "Николовска",
        "Пановска",
        "Петковска",
        "Петровска",
        "Поповска",
        "Ристовска",
        "Симоновска",
        "Спасова",
        "Спасовска",
        "Стефановска",
        "Стојановска",
        "Тодоровска",
        "Трајковска",
        "Христова",
        "Цветковска",
        "Чулева",
        "Шакири",
    )

    prefixes_male = ("Г-н", "Др.", "Проф.")
    prefixes_female = ("Г-ѓа", "Г-ца", "Др.", "Проф.")

    formats_male = (
        "{{first_name_male}} {{last_name_male}}",
        "{{prefix_male}} {{first_name_male}} {{last_name_male}}",
    )

    formats_female = (
        "{{first_name_female}} {{last_name_female}}",
        "{{prefix_female}} {{first_name_female}} {{last_name_female}}",
    )

    formats = formats_male + formats_female
    first_names = first_names_male + first_names_female
    last_names = last_names_male + last_names_female
