from django.db import migrations


def update_first_admin_role(apps, schema_editor):
    Role = apps.get_model("api", "Role")
    RolePermission = apps.get_model("api", "RolePermission")

    role = Role.objects.filter(type="admin").first()
    if role:
        RolePermission.objects.get_or_create(
            role_id=role.id,
            permission="exam_requirement;update_student",
        )


def reverse_update_first_admin_role(apps, schema_editor):
    Role = apps.get_model("api", "Role")
    RolePermission = apps.get_model("api", "RolePermission")

    role = Role.objects.filter(type="admin").first()
    if role:
        RolePermission.objects.filter(
            role_id=role.id,
            permission="exam_requirement;update_student",
        ).delete()


class Migration(migrations.Migration):

    dependencies = [
        ("api", "0031_esexamrequirementstudent"),
    ]

    operations = [
        migrations.RunPython(
            update_first_admin_role,
            reverse_code=reverse_update_first_admin_role,
        ),
    ]
