# Generated by Django 5.2.4 on 2025-07-28 18:58

from django.conf import settings
from django.db import migrations, models
from django.db.backends.base.schema import BaseDatabaseSchemaEditor
from django.db.migrations.state import StateApps


def update_require_e2ee_push_notifications(
    apps: StateApps, schema_editor: BaseDatabaseSchemaEditor
) -> None:
    Realm = apps.get_model("zerver", "Realm")

    # We use 'getattr' with a default value to allow this migration
    # to run in development environment when PUSH_NOTIFICATION_REDACT_CONTENT
    # setting is removed in the future.
    require_e2ee = getattr(settings, "PUSH_NOTIFICATION_REDACT_CONTENT", False)
    if require_e2ee:
        Realm.objects.update(require_e2ee_push_notifications=require_e2ee)


class Migration(migrations.Migration):
    dependencies = [
        ("zerver", "0742_usermessage_zerver_usermessage_is_private_unread_message_id"),
    ]

    operations = [
        migrations.AddField(
            model_name="realm",
            name="require_e2ee_push_notifications",
            field=models.BooleanField(db_default=False, default=False),
        ),
        migrations.RunPython(
            update_require_e2ee_push_notifications,
            elidable=True,
            reverse_code=migrations.RunPython.noop,
        ),
    ]
