# Generated by Django 6.1 on 2026-08-26 04:15

import django.db.models.deletion
import uuid
from django.db import migrations, models


class Migration(migrations.Migration):

    initial = True

    dependencies = [
        ('jobs', '0006_alter_batch_kind_alter_batch_state'),
        ('sitemaps', '0006_alter_sitemap_kind_alter_sitemap_last_error_code_and_more'),
    ]

    operations = [
        migrations.CreateModel(
            name='IndexingRequest',
            fields=[
                ('id', models.UUIDField(default=uuid.uuid4, editable=False, primary_key=True, serialize=False)),
                ('created_at', models.DateTimeField(auto_now_add=True)),
                ('updated_at', models.DateTimeField(auto_now=True)),
                ('loc', models.URLField(max_length=2000)),
                ('position', models.PositiveIntegerField()),
                ('state', models.CharField(choices=[('PENDING', 'Not sent yet'), ('SENT', 'Request sent'), ('ERROR', 'Google rejected it'), ('REMOVED', 'Taken out of the batch')], default='PENDING', max_length=10)),
                ('sent_at', models.DateTimeField(blank=True, null=True)),
                ('request_body', models.JSONField(blank=True, default=dict)),
                ('response_status', models.IntegerField(blank=True, null=True)),
                ('response_body', models.JSONField(blank=True, default=dict)),
                ('error_code', models.CharField(blank=True, default='', max_length=30)),
                ('error_message', models.TextField(blank=True, default='')),
                ('batch', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='indexing_requests', to='jobs.batch')),
                ('url', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='indexing_requests', to='sitemaps.url')),
            ],
            options={
                'ordering': ['batch', 'position'],
                'indexes': [models.Index(fields=['batch', 'state'], name='indexing_in_batch_i_779517_idx'), models.Index(fields=['url', '-created_at'], name='indexing_in_url_id_69b3a5_idx')],
                'constraints': [models.UniqueConstraint(fields=('batch', 'position'), name='one_position_per_indexing_batch'), models.UniqueConstraint(condition=models.Q(('url__isnull', False)), fields=('batch', 'url'), name='one_indexing_request_per_url_and_batch')],
            },
        ),
    ]
