# Generated by Django 5.1.1 on 2026-09-28 15:31 import django.db.models.deletion from django.db import migrations, models class Migration(migrations.Migration): dependencies = [ ('messaging', '0003_messagereadreceipt'), ('notifications', '0014_backfill_safe_0098_delivery_retries'), ] operations = [ migrations.CreateModel( name='AnnouncementJob', fields=[ ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('status', models.CharField(choices=[('PENDING', 'در صف'), ('PROCESSING', 'در حال تماس'), ('SENT', 'ارسال\u200cشده'), ('FAILED', 'ناموفق'), ('CANCELLED', 'لغوشده')], db_index=True, default='PENDING', max_length=15)), ('attempts', models.PositiveSmallIntegerField(default=0)), ('next_attempt_at', models.DateTimeField(db_index=True)), ('idempotency_key', models.CharField(max_length=100, unique=True)), ('last_error', models.TextField(blank=True)), ('created_at', models.DateTimeField(auto_now_add=True)), ('sent_at', models.DateTimeField(blank=True, null=True)), ('message', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, related_name='announcement_job', to='messaging.message')), ], options={ 'indexes': [models.Index(fields=['status', 'next_attempt_at'], name='announce_due_idx')], }, ), ]