# Generated by Django 4.2.7 on 2026-01-14 13:22

from django.db import migrations, models
import django.db.models.deletion


class Migration(migrations.Migration):
    dependencies = [
        ("users", "0001_initial"),
        ("notifications", "0001_initial"),
    ]

    operations = [
        migrations.AlterField(
            model_name="notification",
            name="notification_type",
            field=models.CharField(
                choices=[
                    ("lesson_created", "Создано занятие"),
                    ("lesson_updated", "Занятие обновлено"),
                    ("lesson_cancelled", "Занятие отменено"),
                    ("lesson_rescheduled", "Занятие перенесено"),
                    ("lesson_reminder", "Напоминание о занятии"),
                    ("lesson_started", "Занятие началось"),
                    ("lesson_completed", "Занятие завершено"),
                    ("homework_assigned", "Назначено домашнее задание"),
                    ("homework_submitted", "ДЗ сдано"),
                    ("homework_reviewed", "ДЗ проверено"),
                    ("homework_returned", "ДЗ возвращено на доработку"),
                    ("homework_deadline_reminder", "Напоминание о дедлайне ДЗ"),
                    ("homework_overdue", "ДЗ просрочено"),
                    ("material_added", "Добавлен материал"),
                    ("message_received", "Новое сообщение"),
                    ("subscription_expiring", "Подписка истекает"),
                    ("subscription_expired", "Подписка истекла"),
                    ("payment_received", "Платеж получен"),
                    ("system", "Системное уведомление"),
                ],
                db_index=True,
                max_length=50,
                verbose_name="Тип уведомления",
            ),
        ),
        migrations.CreateModel(
            name="ParentChildNotificationSettings",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True,
                        primary_key=True,
                        serialize=False,
                        verbose_name="ID",
                    ),
                ),
                (
                    "enabled",
                    models.BooleanField(
                        default=True, verbose_name="Уведомления включены"
                    ),
                ),
                (
                    "type_settings",
                    models.JSONField(
                        blank=True,
                        default=dict,
                        help_text="Настройки для каждого типа уведомлений (True/False)",
                        verbose_name="Настройки по типам",
                    ),
                ),
                (
                    "created_at",
                    models.DateTimeField(
                        auto_now_add=True, verbose_name="Дата создания"
                    ),
                ),
                (
                    "updated_at",
                    models.DateTimeField(auto_now=True, verbose_name="Дата обновления"),
                ),
                (
                    "child",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="parent_notification_settings",
                        to="users.client",
                        verbose_name="Ребенок",
                    ),
                ),
                (
                    "parent",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="child_notification_settings",
                        to="users.parent",
                        verbose_name="Родитель",
                    ),
                ),
            ],
            options={
                "verbose_name": "Настройки уведомлений родителя для ребенка",
                "verbose_name_plural": "Настройки уведомлений родителей для детей",
                "db_table": "parent_child_notification_settings",
                "indexes": [
                    models.Index(
                        fields=["parent", "child"],
                        name="parent_chil_parent__9e5823_idx",
                    )
                ],
                "unique_together": {("parent", "child")},
            },
        ),
    ]
