from django.db import migrations


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

    role, _ = Role.objects.get_or_create(
        type="dev",
        defaults={
            "name": "Developer",
            "color": "#FF0000",
        },
    )

    permissions = [
        'admin;create',
        'admin;delete',
        'admin;update',
        'admin;list',
        'exam_period;create',
        'exam_period;delete',
        'exam_period;list',
        'exam_period;update',
        'permission;list',
        'role;create',
        'role;delete',
        'role;list',
        'role;update',
        'staff;create',
        'staff;list',
        'staff;update',
        'staff;delete',
    ]
    for permission in permissions:
        RolePermission.objects.get_or_create(
            role_id=role.id,
            permission=permission,
        )

    UserRole.objects.get_or_create(
        role_id=role.id,
        user_id=1
    )

class Migration(migrations.Migration):

    dependencies = [
        ('api', '0009_esexamperiod_esexamperiodunavailability'),
    ]

    operations = [
        migrations.RunPython(set_first_admin_role),
    ]
