# Generated by Django 5.2.15 on 2026-07-20 03:21

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ('communications', '0003_communicationautomation_delay_minutes_and_more'),
        ('customers', '0001_initial'),
        ('tenancy', '0002_auditlog'),
    ]

    operations = [
        migrations.AlterModelOptions(
            name='communicationqueue',
            options={'ordering': ('priority', 'created_at')},
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='attempts',
            field=models.PositiveIntegerField(default=0),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='last_error',
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='lock_expires_at',
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='locked_by',
            field=models.CharField(blank=True, max_length=100),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='max_attempts',
            field=models.PositiveIntegerField(default=3),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='priority',
            field=models.PositiveSmallIntegerField(default=5, help_text='Lower value = higher priority'),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='processed_at',
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='processing_started_at',
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name='communicationqueue',
            name='provider_response',
            field=models.JSONField(blank=True, default=dict),
        ),
        migrations.AlterField(
            model_name='communicationqueue',
            name='status',
            field=models.CharField(choices=[('PENDING', 'Pending'), ('PROCESSING', 'Processing'), ('SENT', 'Sent'), ('FAILED', 'Failed'), ('CANCELLED', 'Cancelled')], default='PENDING', max_length=20),
        ),
        migrations.AddIndex(
            model_name='communicationqueue',
            index=models.Index(fields=['status', 'priority'], name='comm_queue_status_prio_idx'),
        ),
        migrations.AddIndex(
            model_name='communicationqueue',
            index=models.Index(fields=['next_retry_at'], name='comm_queue_next_retry_idx'),
        ),
    ]
