# Generated by Django 5.2.14 on 2026-06-04 14:38

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


class Migration(migrations.Migration):

    dependencies = [
        ("rims_grants", "0047_eligibility_country_names"),
    ]

    operations = [
        migrations.CreateModel(
            name="FellowshipApplicationProfile",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("home_institute_name", models.CharField(blank=True, max_length=255)),
                ("home_institute_department", models.CharField(blank=True, max_length=200)),
                ("home_institute_faculty", models.CharField(blank=True, max_length=200)),
                ("home_institute_place", models.CharField(blank=True, max_length=255)),
                ("home_country", models.CharField(blank=True, max_length=64)),
                ("host_institute_name", models.CharField(blank=True, max_length=255)),
                ("host_institute_department", models.CharField(blank=True, max_length=200)),
                ("host_institute_faculty", models.CharField(blank=True, max_length=200)),
                ("host_institute_place", models.CharField(blank=True, max_length=255)),
                (
                    "duration_weeks",
                    models.PositiveSmallIntegerField(
                        blank=True, help_text="Planned duration in weeks", null=True
                    ),
                ),
                ("proposed_start", models.DateField(blank=True, null=True)),
                ("proposed_end", models.DateField(blank=True, null=True)),
                ("subject_area", models.CharField(blank=True, max_length=500)),
                ("area_of_interest", models.CharField(blank=True, max_length=255)),
                ("area_of_specialization", models.CharField(blank=True, max_length=200)),
                (
                    "form_of_service",
                    models.CharField(
                        blank=True,
                        choices=[
                            ("lectures", "Lectures"),
                            ("research_collaboration", "Research collaboration"),
                            ("supervision", "Supervision"),
                            ("other", "Other"),
                        ],
                        max_length=32,
                    ),
                ),
                ("job_title", models.CharField(blank=True, max_length=100)),
                ("position", models.CharField(blank=True, max_length=150)),
                ("telephone", models.CharField(blank=True, max_length=64)),
                (
                    "proposed_activities",
                    models.TextField(blank=True, help_text="What the fellow will deliver"),
                ),
                ("other_activities", models.TextField(blank=True)),
                ("motivation", models.TextField(blank=True)),
                ("validated_cv", models.BooleanField(blank=True, null=True)),
                ("validated_home_institute", models.BooleanField(blank=True, null=True)),
                ("validated_host_institute", models.BooleanField(blank=True, null=True)),
                ("validated_letter_of_release", models.BooleanField(blank=True, null=True)),
                (
                    "placement_status",
                    models.CharField(
                        choices=[
                            ("pending", "Pending"),
                            ("host_confirmed", "Host institution confirmed"),
                            ("travel_arranged", "Travel arranged"),
                            ("placed", "Currently placed"),
                            ("completed", "Placement completed"),
                            ("cancelled", "Cancelled"),
                        ],
                        db_index=True,
                        default="pending",
                        max_length=24,
                    ),
                ),
                ("placement_confirmed_at", models.DateTimeField(blank=True, null=True)),
                ("placement_notes", models.TextField(blank=True)),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "application",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="fellowship_profile",
                        to="rims_grants.application",
                    ),
                ),
            ],
            options={
                "verbose_name": "Fellowship application profile",
                "verbose_name_plural": "Fellowship application profiles",
            },
        ),
        migrations.CreateModel(
            name="ScholarshipApplicationProfile",
            fields=[
                (
                    "id",
                    models.BigAutoField(
                        auto_created=True, primary_key=True, serialize=False, verbose_name="ID"
                    ),
                ),
                ("date_of_birth", models.DateField(blank=True, null=True)),
                ("gender", models.CharField(blank=True, max_length=16)),
                (
                    "country_of_birth",
                    models.CharField(blank=True, help_text="ISO 3166-1 alpha-3", max_length=3),
                ),
                (
                    "country_of_residence",
                    models.CharField(blank=True, help_text="ISO 3166-1 alpha-3", max_length=3),
                ),
                ("country_of_origin", models.CharField(blank=True, max_length=3)),
                ("is_refugee", models.BooleanField(blank=True, null=True)),
                ("degree_programme", models.CharField(blank=True, max_length=100)),
                ("gpa", models.FloatField(blank=True, null=True)),
                ("grading_criteria", models.CharField(blank=True, max_length=64)),
                ("english_in_high_school", models.BooleanField(blank=True, null=True)),
                ("applied_to_university", models.BooleanField(blank=True, null=True)),
                ("postgraduate_student", models.BooleanField(blank=True, null=True)),
                ("people_in_house", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("rooms_in_house", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("how_many_share_toilet", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("electricity", models.BooleanField(blank=True, null=True)),
                ("solar_energy", models.BooleanField(blank=True, null=True)),
                ("water_source", models.CharField(blank=True, max_length=64)),
                ("toilet_type", models.CharField(blank=True, max_length=32)),
                ("village_of_birth", models.CharField(blank=True, max_length=100)),
                ("district_of_birth", models.CharField(blank=True, max_length=100)),
                ("village_of_residence", models.CharField(blank=True, max_length=100)),
                ("district_of_residence", models.CharField(blank=True, max_length=100)),
                ("nearest_major_road", models.CharField(blank=True, max_length=100)),
                ("nearest_trading_centre", models.CharField(blank=True, max_length=100)),
                ("distance_to_the_source", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("name_of_guardian_or_spouse", models.CharField(blank=True, max_length=150)),
                ("guardian_relationship", models.CharField(blank=True, max_length=100)),
                ("guardian_occupation", models.CharField(blank=True, max_length=100)),
                ("guardian_or_spouse_phone", models.CharField(blank=True, max_length=32)),
                ("number_of_siblings", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("income_source_1", models.CharField(blank=True, max_length=150)),
                ("income_source_2", models.CharField(blank=True, max_length=150)),
                ("income_source_3", models.CharField(blank=True, max_length=150)),
                ("income_source_4", models.CharField(blank=True, max_length=150)),
                ("own_livestock", models.BooleanField(blank=True, null=True)),
                ("number_of_cattle", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("number_of_goats", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("number_of_sheep", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("number_of_chickens", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("number_of_camels", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("number_of_donkeys", models.PositiveSmallIntegerField(blank=True, null=True)),
                ("have_physical_disability", models.BooleanField(blank=True, null=True)),
                ("physical_disability", models.CharField(blank=True, max_length=200)),
                ("have_history_of_chronic_illness", models.BooleanField(blank=True, null=True)),
                ("history_of_chronic_illness", models.CharField(blank=True, max_length=200)),
                ("have_been_arrested", models.BooleanField(blank=True, null=True)),
                ("cause_of_arrest", models.CharField(blank=True, max_length=200)),
                ("pending_high_school_balances", models.BooleanField(blank=True, null=True)),
                (
                    "school_balances",
                    models.DecimalField(blank=True, decimal_places=2, max_digits=12, null=True),
                ),
                ("held_leadership_position", models.BooleanField(blank=True, null=True)),
                ("community_service_participation", models.BooleanField(blank=True, null=True)),
                ("currently_volunteering", models.BooleanField(blank=True, null=True)),
                ("member_of_group", models.BooleanField(blank=True, null=True)),
                ("ever_been_employed", models.BooleanField(blank=True, null=True)),
                ("employer_support", models.BooleanField(blank=True, null=True)),
                (
                    "challenge",
                    models.TextField(blank=True, help_text="Greatest challenge overcome"),
                ),
                ("experience", models.TextField(blank=True)),
                ("most_significant_contribution", models.TextField(blank=True)),
                ("most_significant_leadership_contribution", models.TextField(blank=True)),
                (
                    "home_validation_status",
                    models.CharField(
                        choices=[
                            ("not_required", "Not required"),
                            ("pending", "Pending"),
                            ("scheduled", "Scheduled"),
                            ("completed", "Completed"),
                            ("failed", "Failed"),
                        ],
                        db_index=True,
                        default="not_required",
                        max_length=16,
                    ),
                ),
                ("home_validation_notes", models.TextField(blank=True)),
                ("home_validated_at", models.DateTimeField(blank=True, null=True)),
                ("validated_academic_document", models.BooleanField(blank=True, null=True)),
                ("validated_reference_letters", models.BooleanField(blank=True, null=True)),
                (
                    "scholarship_call_source",
                    models.CharField(
                        blank=True,
                        help_text="How applicant heard about the call (e.g. social_media, university_notice)",
                        max_length=64,
                    ),
                ),
                ("created_at", models.DateTimeField(auto_now_add=True)),
                ("updated_at", models.DateTimeField(auto_now=True)),
                (
                    "application",
                    models.OneToOneField(
                        on_delete=django.db.models.deletion.CASCADE,
                        related_name="scholarship_profile",
                        to="rims_grants.application",
                    ),
                ),
            ],
            options={
                "verbose_name": "Scholarship application profile",
                "verbose_name_plural": "Scholarship application profiles",
            },
        ),
    ]
