# Generated by Django 4.2.9 on 2026-02-26 09:59

from django.db import migrations, models


def align_existing_school_level_flags(apps, schema_editor):
    SchoolSetting = apps.get_model("app", "SchoolSetting")
    db_alias = schema_editor.connection.alias
    for setting in SchoolSetting.objects.using(db_alias).all():
        if setting.education_level == "SECONDARY_LOWER":
            setting.offers_primary = False
            setting.offers_secondary_lower = True
            setting.offers_secondary_upper = False
        elif setting.education_level == "SECONDARY_UPPER":
            setting.offers_primary = False
            setting.offers_secondary_lower = False
            setting.offers_secondary_upper = True
        else:
            setting.offers_primary = True
            setting.offers_secondary_lower = False
            setting.offers_secondary_upper = False
        setting.save(
            update_fields=[
                "offers_primary",
                "offers_secondary_lower",
                "offers_secondary_upper",
            ]
        )


class Migration(migrations.Migration):

    dependencies = [
        ('app', '0071_alter_schoolsetting_education_level'),
    ]

    operations = [
        migrations.AddField(
            model_name='schoolsetting',
            name='offers_primary',
            field=models.BooleanField(default=True, help_text='Enable primary school workflows (P1-P7).'),
        ),
        migrations.AddField(
            model_name='schoolsetting',
            name='offers_secondary_lower',
            field=models.BooleanField(default=False, help_text='Enable lower-secondary workflows (S1-S4).'),
        ),
        migrations.AddField(
            model_name='schoolsetting',
            name='offers_secondary_upper',
            field=models.BooleanField(default=False, help_text='Enable A-Level workflows (S5-S6).'),
        ),
        migrations.AlterField(
            model_name='schoolsetting',
            name='education_level',
            field=models.CharField(choices=[('PRIMARY', 'Primary'), ('SECONDARY_LOWER', 'Secondary (O-Level)'), ('SECONDARY_UPPER', 'Secondary (A-Level)')], default='PRIMARY', help_text='Default active school level used when no session level is selected.', max_length=30),
        ),
        migrations.RunPython(align_existing_school_level_flags, migrations.RunPython.noop),
    ]
