# Generated by Django 3.2.13 on 2022-07-04 15:16

from django.db import migrations, transaction

from baserow.contrib.database.models import TableWebhook, TableWebhookEvent


def forward(apps, schema_editor):
    """
    This migration will create individual TableWebhookEvent entries
    for all deprecated single row webhooks that has include_all_events
    set to True.
    """

    with transaction.atomic():
        webhooks = TableWebhook.objects.filter(include_all_events=True)
        create_webhooks = []
        for webhook in webhooks:
            create_webhooks.append(
                TableWebhookEvent(webhook=webhook, event_type="row.created")
            )
            create_webhooks.append(
                TableWebhookEvent(webhook=webhook, event_type="row.updated")
            )
            create_webhooks.append(
                TableWebhookEvent(webhook=webhook, event_type="row.deleted")
            )

        TableWebhookEvent.objects.bulk_create(create_webhooks, batch_size=100)
        TableWebhook.objects.filter(include_all_events=True).update(
            include_all_events=False
        )


def reverse(apps, schema_editor):
    ...


class Migration(migrations.Migration):
    dependencies = [
        ("database", "0080_auto_20220702_1612"),
    ]

    operations = [
        migrations.RunPython(forward, reverse),
    ]
