# Generated by Django 4.1.5 on 2024-10-07 17:58

import django.contrib.postgres.fields
from django.db import migrations, models
import django.db.models.deletion
import django.utils.timezone
import model_utils.fields
import uuid
import zs_utils.file_utils
import zs_utils.json_utils


class Migration(migrations.Migration):
    initial = True

    dependencies = []

    operations = [
        migrations.CreateModel(
            name="EmailNotification",
            fields=[
                (
                    "created",
                    model_utils.fields.AutoCreatedField(
                        default=django.utils.timezone.now, editable=False, verbose_name="created"
                    ),
                ),
                (
                    "modified",
                    model_utils.fields.AutoLastModifiedField(
                        default=django.utils.timezone.now, editable=False, verbose_name="modified"
                    ),
                ),
                (
                    "id",
                    model_utils.fields.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False),
                ),
                ("sender", models.CharField(max_length=64, verbose_name="Отправитель")),
                (
                    "receivers",
                    django.contrib.postgres.fields.ArrayField(
                        base_field=models.CharField(max_length=64), size=None, verbose_name="Получатели"
                    ),
                ),
                (
                    "language",
                    models.CharField(
                        choices=[
                            ("en", "Английский"),
                            ("ru", "Русский"),
                            ("de", "Немецкий"),
                            ("zh", "Китайский"),
                            ("pl", "Польский"),
                            ("fr", "Французский"),
                            ("it", "Итальянский"),
                            ("pt", "Португальский"),
                            ("es", "Испанский"),
                            ("ja", "Японский"),
                            ("th", "Тайский"),
                            ("nl", "Голландский"),
                            ("ab", "Абхазский"),
                            ("aa", "Афар"),
                            ("af", "Африкаанс"),
                            ("ak", "Акан"),
                            ("sq", "Албанский"),
                            ("am", "Амхарский"),
                            ("ar", "Арабский"),
                            ("an", "Арагонский"),
                            ("hy", "Армянский"),
                            ("as", "Ассамский"),
                            ("av", "Аварский"),
                            ("ae", "Авестийский"),
                            ("ay", "Аймара"),
                            ("az", "Азербайджанский"),
                            ("bm", "Бамбара"),
                            ("ba", "Башкирский"),
                            ("eu", "Баскский"),
                            ("be", "Белорусский"),
                            ("bn", "Бенгальский"),
                            ("bh", "Бихари"),
                            ("bi", "Бислама"),
                            ("bs", "Боснийский"),
                            ("br", "Бретонский"),
                            ("bg", "Болгарский"),
                            ("my", "Бирманский"),
                            ("ca", "Каталанский"),
                            ("ch", "Чаморро"),
                            ("ce", "Чеченский"),
                            ("ny", "Ньянджа"),
                            ("cv", "Чувашский"),
                            ("kw", "Корнский"),
                            ("co", "Корсиканский"),
                            ("cr", "Кри"),
                            ("hr", "Хорватский"),
                            ("cs", "Чешский"),
                            ("da", "Датский"),
                            ("dv", "Дивехи"),
                            ("dz", "Дзонг-Кэ"),
                            ("eo", "Эсперанто"),
                            ("et", "Эстонский"),
                            ("ee", "Эве"),
                            ("fo", "Фарерский"),
                            ("fj", "Фиджи"),
                            ("fi", "Финский"),
                            ("ff", "Фулах"),
                            ("gl", "Галисийский"),
                            ("ka", "Грузинский"),
                            ("el", "Новогреческий (1453-)"),
                            ("gn", "Гуарани"),
                            ("gu", "Гуджарати"),
                            ("ht", "Гаитянский"),
                            ("ha", "Хауса"),
                            ("he", "Иврит"),
                            ("hz", "Гереро"),
                            ("hi", "Хинди"),
                            ("ho", "Хири Моту"),
                            ("hu", "Венгерский"),
                            ("ia", "Интерлингва (Ассоциация Международного Вспомогательного Языка)"),
                            ("id", "Индонезийский"),
                            ("ie", "Интерлингве"),
                            ("ga", "Ирландский"),
                            ("ig", "Игбо"),
                            ("ik", "Инулиак"),
                            ("io", "Идо"),
                            ("is", "Исландский"),
                            ("iu", "Инуктитут"),
                            ("jv", "Яванский"),
                            ("kl", "Калааллисут"),
                            ("kn", "Каннада"),
                            ("kr", "Канури"),
                            ("ks", "Кашмири"),
                            ("kk", "Казахский"),
                            ("km", "Кхмерский Центральный"),
                            ("ki", "Кикуйю"),
                            ("rw", "Киньяруанда"),
                            ("ky", "Киргизский"),
                            ("kv", "Коми"),
                            ("kg", "Конго"),
                            ("ko", "Корейский"),
                            ("ku", "Курдский"),
                            ("kj", "Киньяма"),
                            ("la", "Латынь"),
                            ("lb", "Люксембургский"),
                            ("lg", "Ганда"),
                            ("li", "Лимбурган"),
                            ("ln", "Лингала"),
                            ("lo", "Лаосский"),
                            ("lt", "Литовский"),
                            ("lu", "Луба-Катанга"),
                            ("lv", "Латышский"),
                            ("gv", "Мэнкский"),
                            ("mk", "Македонский"),
                            ("mg", "Малагасийский"),
                            ("ms", "Малайский (Макроязык)"),
                            ("ml", "Малаялам"),
                            ("mt", "Мальтийский"),
                            ("mi", "Маори"),
                            ("mr", "Маратхи"),
                            ("mh", "Маршалльский"),
                            ("mn", "Монгольский"),
                            ("na", "Науру"),
                            ("nv", "Навахо"),
                            ("nb", "Норвежский Букмол"),
                            ("nd", "Северный Ндебеле"),
                            ("ne", "Непальский (макроязык)"),
                            ("ng", "Ндунга"),
                            ("nn", "Норвежский Нюнорск"),
                            ("no", "Норвежский"),
                            ("ii", "Сычуань Йи"),
                            ("nr", "Южный Ндебеле"),
                            ("oc", "Окситанский (пост 1500)"),
                            ("oj", "Оджибва"),
                            ("cu", "Церковнославянский"),
                            ("om", "Оромо"),
                            ("or", "Ория (макроязык)"),
                            ("os", "Осетинский"),
                            ("pa", "Панджаби"),
                            ("pi", "Пали"),
                            ("fa", "Персидский"),
                            ("ps", "Пушту"),
                            ("qu", "Кечуа"),
                            ("rm", "Ретороманский"),
                            ("rn", "Рунди"),
                            ("ro", "Румынский"),
                            ("sa", "Санскрит"),
                            ("sc", "Сардинский"),
                            ("sd", "Синдхи"),
                            ("se", "Северные Саамы"),
                            ("sm", "Самоанский"),
                            ("sg", "Санго"),
                            ("sr", "Сербский"),
                            ("gd", "Шотландский Гэльский"),
                            ("sn", "Шона"),
                            ("si", "Сингальский"),
                            ("sk", "Словацкий"),
                            ("sl", "Словенский"),
                            ("so", "Сомали"),
                            ("st", "Южный Сото"),
                            ("su", "Сунданский"),
                            ("sw", "Суахили (Макроязык)"),
                            ("ss", "Свати"),
                            ("sv", "Шведский"),
                            ("ta", "Тамильский"),
                            ("te", "Телугу"),
                            ("tg", "Таджикский"),
                            ("ti", "Тигринья"),
                            ("bo", "Тибетский"),
                            ("tk", "Туркменский"),
                            ("tl", "Тагальский"),
                            ("tn", "Тсвана"),
                            ("to", "Тонга (Острова Тонга)"),
                            ("tr", "Турецкий"),
                            ("ts", "Тсонга"),
                            ("tt", "Татарский"),
                            ("tw", "Тви"),
                            ("ty", "Таитянский"),
                            ("ug", "Уйгурский"),
                            ("uk", "Украинский"),
                            ("ur", "Урду"),
                            ("uz", "Узбекский"),
                            ("ve", "Венда"),
                            ("vi", "Вьетнамский"),
                            ("vo", "Волапюк"),
                            ("wa", "Валлун"),
                            ("cy", "Валлийский"),
                            ("wo", "Волоф"),
                            ("fy", "Западно-фризский"),
                            ("xh", "Коса"),
                            ("yi", "Идиш"),
                            ("yo", "Йоруба"),
                            ("za", "Чжуан"),
                            ("zu", "Зулусский"),
                        ],
                        max_length=2,
                        verbose_name="Язык",
                    ),
                ),
                ("template_name", models.CharField(max_length=64, verbose_name="Шаблон")),
                (
                    "template_params",
                    models.JSONField(
                        blank=True,
                        default=dict,
                        encoder=zs_utils.json_utils.CustomJSONEncoder,
                        verbose_name="Параметры шаблона",
                    ),
                ),
                ("is_urgent", models.BooleanField(default=False, verbose_name="Уведомление срочное")),
                ("is_sent", models.BooleanField(default=False, verbose_name="Уведомление отправлено")),
            ],
            options={
                "ordering": ["-created"],
            },
        ),
        migrations.CreateModel(
            name="EmailNotificationFile",
            fields=[
                (
                    "id",
                    model_utils.fields.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False),
                ),
                ("name", models.CharField(default="", max_length=255, verbose_name="Имя файла")),
                (
                    "file",
                    models.FileField(
                        upload_to=zs_utils.file_utils.get_email_notification_file_upload_path, verbose_name="Файл"
                    ),
                ),
                (
                    "email_notification",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="files",
                        related_query_name="file",
                        to="email_notification.emailnotification",
                        verbose_name="Уведомление",
                    ),
                ),
            ],
            options={
                "ordering": ["name"],
            },
        ),
    ]
