# Generated by Django 6.0 on 2025-12-25 09:34

import django.utils.timezone
import signal_webhooks.fields
import signal_webhooks.utils
from archivebox import uuid_compat
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('api', '0001_squashed'),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='outboundwebhook',
            options={'verbose_name': 'API Outbound Webhook'},
        ),
        migrations.AddField(
            model_name='outboundwebhook',
            name='created',
            field=models.DateTimeField(auto_now_add=True, default=django.utils.timezone.now, help_text='When the webhook was created.', verbose_name='created'),
            preserve_default=False,
        ),
        migrations.AddField(
            model_name='outboundwebhook',
            name='updated',
            field=models.DateTimeField(auto_now=True, help_text='When the webhook was last updated.', verbose_name='updated'),
        ),
        migrations.AlterField(
            model_name='apitoken',
            name='created_at',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
        ),
        migrations.AlterField(
            model_name='apitoken',
            name='id',
            field=models.UUIDField(default=uuid_compat.uuid7, editable=False, primary_key=True, serialize=False, unique=True),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='auth_token',
            field=signal_webhooks.fields.TokenField(blank=True, default='', help_text='Authentication token to use in an Authorization header.', max_length=8000, validators=[signal_webhooks.utils.decode_cipher_key], verbose_name='authentication token'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='created_at',
            field=models.DateTimeField(db_index=True, default=django.utils.timezone.now),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='enabled',
            field=models.BooleanField(default=True, help_text='Is this webhook enabled?', verbose_name='enabled'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='endpoint',
            field=models.URLField(help_text='Target endpoint for this webhook.', max_length=2047, verbose_name='endpoint'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='headers',
            field=models.JSONField(blank=True, default=dict, help_text='Headers to send with the webhook request.', validators=[signal_webhooks.utils.is_dict], verbose_name='headers'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='id',
            field=models.UUIDField(default=uuid_compat.uuid7, editable=False, primary_key=True, serialize=False, unique=True),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='keep_last_response',
            field=models.BooleanField(default=False, help_text='Should the webhook keep a log of the latest response it got?', verbose_name='keep last response'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='last_failure',
            field=models.DateTimeField(default=None, help_text='When the webhook last failed.', null=True, verbose_name='last failure'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='last_response',
            field=models.CharField(blank=True, default='', help_text='Latest response to this webhook.', max_length=8000, verbose_name='last response'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='last_success',
            field=models.DateTimeField(default=None, help_text='When the webhook last succeeded.', null=True, verbose_name='last success'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='name',
            field=models.CharField(db_index=True, help_text='Webhook name.', max_length=255, unique=True, verbose_name='name'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='ref',
            field=models.CharField(db_index=True, help_text='Dot import notation to the model the webhook is for.', max_length=1023, validators=[signal_webhooks.utils.model_from_reference], verbose_name='referenced model'),
        ),
        migrations.AlterField(
            model_name='outboundwebhook',
            name='signal',
            field=models.CharField(choices=[('CREATE', 'Create'), ('UPDATE', 'Update'), ('DELETE', 'Delete'), ('M2M', 'M2M changed'), ('CREATE_OR_UPDATE', 'Create or Update'), ('CREATE_OR_DELETE', 'Create or Delete'), ('CREATE_OR_M2M', 'Create or M2M changed'), ('UPDATE_OR_DELETE', 'Update or Delete'), ('UPDATE_OR_M2M', 'Update or M2M changed'), ('DELETE_OR_M2M', 'Delete or M2M changed'), ('CREATE_UPDATE_OR_DELETE', 'Create, Update or Delete'), ('CREATE_UPDATE_OR_M2M', 'Create, Update or M2M changed'), ('CREATE_DELETE_OR_M2M', 'Create, Delete or M2M changed'), ('UPDATE_DELETE_OR_M2M', 'Update, Delete or M2M changed'), ('CREATE_UPDATE_DELETE_OR_M2M', 'Create, Update or Delete, or M2M changed')], help_text='Signal the webhook fires to.', max_length=255, verbose_name='signal'),
        ),
        migrations.AddConstraint(
            model_name='outboundwebhook',
            constraint=models.UniqueConstraint(fields=('ref', 'endpoint'), name='prevent_duplicate_hooks_api_outboundwebhook'),
        ),
    ]
