# Generated by Django 5.2.14 on 2026-06-07 06:21

import apps.core.storage.paths
import django.db.models.deletion
from django.conf import settings
from django.db import migrations, models


class Migration(migrations.Migration):

    dependencies = [
        ("rims_grants", "0048_add_scholarship_fellowship_profiles"),
        ("rims_scholarships", "0005_stipend_status"),
        migrations.swappable_dependency(settings.AUTH_USER_MODEL),
    ]

    operations = [
        migrations.AlterModelOptions(
            name="progressreport",
            options={"ordering": ["-year", "-semester", "-submitted_at"]},
        ),
        migrations.AddField(
            model_name="graduationrecord",
            name="certificate_file",
            field=models.FileField(
                blank=True,
                help_text="Uploaded graduation certificate.",
                null=True,
                upload_to=apps.core.storage.paths.upload_to_scholarships,
            ),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="accepted_by",
            field=models.ForeignKey(
                blank=True,
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="progress_reports_accepted",
                to=settings.AUTH_USER_MODEL,
            ),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="accepted_on",
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="activities_executed",
            field=models.TextField(
                blank=True, help_text="Research and academic activities carried out this period."
            ),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="additional_information",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="areas_university_needs_improvement",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="critical_issues",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="farmers_or_organisation_count",
            field=models.PositiveIntegerField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="farming_community_type",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="location",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="none_farmer_actors",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="research_timeframe",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="review_comment",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="semester",
            field=models.PositiveSmallIntegerField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="skills_required",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="status",
            field=models.CharField(
                choices=[
                    ("draft", "Draft"),
                    ("submitted", "Submitted"),
                    ("accepted", "Accepted"),
                    ("revision_required", "Revision required"),
                ],
                db_index=True,
                default="draft",
                max_length=20,
            ),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="submitted_on",
            field=models.DateField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="technology_championed",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="title_of_research",
            field=models.CharField(blank=True, max_length=500),
        ),
        migrations.AddField(
            model_name="progressreport",
            name="year",
            field=models.PositiveSmallIntegerField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="scholar",
            name="degree_level",
            field=models.CharField(
                blank=True,
                choices=[
                    ("bachelor", "Bachelor"),
                    ("pgdip", "Postgraduate Diploma"),
                    ("mphil", "MPhil"),
                    ("msc", "MSc"),
                    ("phd", "PhD"),
                    ("other", "Other"),
                ],
                help_text="Level of degree being pursued.",
                max_length=16,
            ),
        ),
        migrations.AddField(
            model_name="scholar",
            name="degree_name",
            field=models.CharField(
                blank=True,
                help_text="Full degree programme name, e.g. 'MSc Agricultural Economics'.",
                max_length=255,
            ),
        ),
        migrations.AddField(
            model_name="scholar",
            name="expected_graduation",
            field=models.DateField(blank=True, help_text="Planned graduation date.", null=True),
        ),
        migrations.AddField(
            model_name="scholar",
            name="host_university_address",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="scholar",
            name="intake_year",
            field=models.PositiveSmallIntegerField(blank=True, null=True),
        ),
        migrations.AddField(
            model_name="scholar",
            name="research_abstract",
            field=models.TextField(blank=True),
        ),
        migrations.AddField(
            model_name="scholar",
            name="status_reason",
            field=models.TextField(
                blank=True,
                help_text="Reason for the current status (e.g. why studies were paused).",
            ),
        ),
        migrations.AddField(
            model_name="scholar",
            name="student_number",
            field=models.CharField(blank=True, max_length=64),
        ),
        migrations.AddField(
            model_name="scholar",
            name="student_type",
            field=models.CharField(
                choices=[
                    ("competitive_grant", "Competitive Grant"),
                    ("regional_programme", "Regional Programme"),
                    ("scholarship", "Scholarship"),
                    ("other", "Other"),
                ],
                default="other",
                max_length=24,
            ),
        ),
        migrations.AddField(
            model_name="scholar",
            name="supervisor_1",
            field=models.CharField(blank=True, max_length=255),
        ),
        migrations.AddField(
            model_name="scholar",
            name="supervisor_2",
            field=models.CharField(blank=True, max_length=255),
        ),
        migrations.AddField(
            model_name="scholar",
            name="supervisor_3",
            field=models.CharField(blank=True, max_length=255),
        ),
        migrations.AddField(
            model_name="scholar",
            name="thesis_title",
            field=models.CharField(blank=True, max_length=500),
        ),
        migrations.AddField(
            model_name="scholar",
            name="university_reg_no",
            field=models.CharField(
                blank=True, help_text="University registration / student number.", max_length=64
            ),
        ),
        migrations.AlterField(
            model_name="progressreport",
            name="file",
            field=models.FileField(
                blank=True, null=True, upload_to=apps.core.storage.paths.upload_to_scholarships
            ),
        ),
        migrations.AlterField(
            model_name="progressreport",
            name="period_label",
            field=models.CharField(help_text="e.g. 'Semester 1 2026' or '2026-Q1'", max_length=64),
        ),
        migrations.AlterField(
            model_name="progressreport",
            name="submitted_at",
            field=models.DateTimeField(blank=True, null=True),
        ),
        migrations.AlterField(
            model_name="scholar",
            name="award",
            field=models.OneToOneField(
                blank=True,
                help_text="Link the RIMS award record when enrolled from the grants workflow.",
                null=True,
                on_delete=django.db.models.deletion.SET_NULL,
                related_name="scholar_profile",
                to="rims_grants.award",
            ),
        ),
        migrations.AlterField(
            model_name="scholar",
            name="status",
            field=models.CharField(
                choices=[
                    ("enrolled", "Enrolled"),
                    ("active", "Active"),
                    ("paused", "Paused studies"),
                    ("deferred", "Deferred"),
                    ("discontinued", "Discontinued"),
                    ("withdrawn", "Withdrawn"),
                    ("completed", "Completed"),
                ],
                db_index=True,
                default="enrolled",
                help_text="Lifecycle stage. Use transition_scholar() to change.",
                max_length=16,
            ),
        ),
        migrations.CreateModel(
            name="ConferencePaper",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("title", models.TextField()),
                (
                    "file",
                    models.FileField(
                        blank=True,
                        null=True,
                        upload_to=apps.core.storage.paths.upload_to_scholarships,
                    ),
                ),
                ("notes", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="conference_papers",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["title"],
            },
        ),
        migrations.CreateModel(
            name="Manuscript",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("title", models.TextField()),
                (
                    "file",
                    models.FileField(
                        blank=True,
                        null=True,
                        upload_to=apps.core.storage.paths.upload_to_scholarships,
                    ),
                ),
                ("notes", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="manuscripts",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["title"],
            },
        ),
        migrations.CreateModel(
            name="Presentation",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("title", models.TextField()),
                (
                    "file",
                    models.FileField(
                        blank=True,
                        null=True,
                        upload_to=apps.core.storage.paths.upload_to_scholarships,
                    ),
                ),
                ("notes", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="presentations",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["title"],
            },
        ),
        migrations.CreateModel(
            name="SkillsImprovement",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("skill", models.CharField(max_length=255)),
                ("description", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="skills_improvements",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["skill"],
            },
        ),
        migrations.CreateModel(
            name="SupervisorFeedback",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("name", models.CharField(blank=True, max_length=255)),
                ("title", models.CharField(blank=True, max_length=100)),
                ("area_of_mentorship", models.CharField(blank=True, max_length=200)),
                ("areas_of_achievement", models.TextField(blank=True)),
                ("areas_requiring_attention", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="supervisor_feedbacks",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["id"],
            },
        ),
        migrations.CreateModel(
            name="TeachingQuality",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("description", models.TextField(blank=True)),
                (
                    "rating",
                    models.PositiveSmallIntegerField(
                        blank=True, help_text="1–5 rating where applicable.", null=True
                    ),
                ),
                ("notes", models.TextField(blank=True)),
                (
                    "report",
                    models.ForeignKey(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="teaching_quality_records",
                        to="rims_scholarships.progressreport",
                    ),
                ),
            ],
            options={
                "ordering": ["id"],
            },
        ),
    ]
