# Generated by Django 5.2.13 on 2026-06-08 11:35

from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ("repository_documents", "0009_email_ingest"),
    ]

    operations = [
        migrations.CreateModel(
            name="Region",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("name", models.CharField(max_length=80, unique=True)),
                ("slug", models.SlugField(max_length=96, unique=True)),
                (
                    "display_order",
                    models.PositiveSmallIntegerField(
                        default=0, help_text="Manual sort weight for the browse-by-region list."
                    ),
                ),
                ("created_at", models.DateTimeField(auto_now_add=True)),
            ],
            options={
                "ordering": ["display_order", "name"],
            },
        ),
        migrations.AddField(
            model_name="document",
            name="agris_identifier",
            field=models.CharField(blank=True, db_index=True, max_length=64),
        ),
        migrations.AddField(
            model_name="document",
            name="conference_date",
            field=models.CharField(blank=True, max_length=64),
        ),
        migrations.AddField(
            model_name="document",
            name="conference_name",
            field=models.CharField(blank=True, db_index=True, max_length=255),
        ),
        migrations.AddField(
            model_name="document",
            name="conference_place",
            field=models.CharField(blank=True, max_length=160),
        ),
        migrations.AddField(
            model_name="document",
            name="country",
            field=models.CharField(
                blank=True,
                db_index=True,
                help_text="Country the resource relates to — canonical full name (see apps.core.countries).",
                max_length=100,
            ),
        ),
        migrations.AddField(
            model_name="document",
            name="degree",
            field=models.CharField(blank=True, max_length=120),
        ),
        migrations.AddField(
            model_name="document",
            name="degree_institution",
            field=models.CharField(blank=True, max_length=255),
        ),
        migrations.AddField(
            model_name="document",
            name="edition",
            field=models.CharField(blank=True, max_length=64),
        ),
        migrations.AddField(
            model_name="document",
            name="eissn",
            field=models.CharField(blank=True, max_length=18),
        ),
        migrations.AddField(
            model_name="document",
            name="external_resource_url",
            field=models.URLField(blank=True, max_length=500),
        ),
        migrations.AddField(
            model_name="document",
            name="isbn",
            field=models.CharField(blank=True, db_index=True, max_length=20),
        ),
        migrations.AddField(
            model_name="document",
            name="issn",
            field=models.CharField(blank=True, db_index=True, max_length=18),
        ),
        migrations.AddField(
            model_name="document",
            name="issue",
            field=models.CharField(blank=True, max_length=32),
        ),
        migrations.AddField(
            model_name="document",
            name="journal_title",
            field=models.CharField(blank=True, db_index=True, max_length=255),
        ),
        migrations.AddField(
            model_name="document",
            name="legacy_drupal_nid",
            field=models.PositiveIntegerField(
                blank=True,
                db_index=True,
                help_text="Source Drupal node id — idempotency anchor for the legacy migration.",
                null=True,
                unique=True,
            ),
        ),
        migrations.AddField(
            model_name="document",
            name="oai_identifier",
            field=models.CharField(blank=True, max_length=255),
        ),
        migrations.AddField(
            model_name="document",
            name="pages",
            field=models.CharField(blank=True, max_length=32),
        ),
        migrations.AddField(
            model_name="document",
            name="publication_place",
            field=models.CharField(blank=True, max_length=160),
        ),
        migrations.AddField(
            model_name="document",
            name="publisher",
            field=models.CharField(blank=True, db_index=True, max_length=255),
        ),
        migrations.AddField(
            model_name="document",
            name="volume",
            field=models.CharField(blank=True, max_length=32),
        ),
        migrations.AddField(
            model_name="keyword",
            name="agrovoc_uri",
            field=models.URLField(
                blank=True,
                help_text="Canonical AGROVOC concept URI, when this term comes from AGROVOC.",
            ),
        ),
        migrations.AddField(
            model_name="keyword",
            name="kind",
            field=models.CharField(
                choices=[
                    ("general", "General"),
                    ("agris_category", "AGRIS subject category"),
                    ("agrovoc", "AGROVOC term"),
                    ("additional", "Additional keyword"),
                ],
                db_index=True,
                default="general",
                help_text="Source vocabulary — drives the Subjects browse grouping.",
                max_length=20,
            ),
        ),
        migrations.AlterField(
            model_name="keyword",
            name="label",
            field=models.CharField(max_length=120, unique=True),
        ),
        migrations.AlterField(
            model_name="keyword",
            name="slug",
            field=models.SlugField(max_length=140, unique=True),
        ),
        migrations.AddField(
            model_name="document",
            name="regions",
            field=models.ManyToManyField(
                blank=True,
                help_text="Geographic region(s) of focus — multi-valued (e.g. East Africa + Southern Africa).",
                related_name="documents",
                to="repository_documents.region",
            ),
        ),
    ]
