# Generated by Django 3.2.18 on 2023-02-19 22:13
from django.contrib.contenttypes.models import ContentType
from django.db import migrations, models
from django.db.models import F


def merge_admins(apps, schema_editor):
    AdminRegistration = apps.get_model('registration', 'AdminRegistration')
    VolunteerRegistration = apps.get_model('registration', 'VolunteerRegistration')
    db_alias = schema_editor.connection.alias
    AdminRegistration.objects.using(db_alias).update(admin=True)
    for admin in AdminRegistration.objects.all():
        admin.professional_activity = admin.role
        admin.polymorphic_ctype_id = ContentType.objects.get_for_model(VolunteerRegistration).id
        admin.save()


def separate_admins(apps, schema_editor):
    AdminRegistration = apps.get_model('registration', 'AdminRegistration')
    VolunteerRegistration = apps.get_model('registration', 'VolunteerRegistration')
    for admin in VolunteerRegistration.objects.filter(admin=True).all():
        admin.delete()
        AdminRegistration.objects.create(user=admin.user,
                                         professional_activity=admin.professional_activity,
                                         role=admin.professional_activity)


class Migration(migrations.Migration):
    dependencies = [
        ('participation', '0003_alter_team_trigram'),
        ('registration', '0003_alter_participantregistration_zip_code'),
    ]

    operations = [
        migrations.AddField(
            model_name='volunteerregistration',
            name='admin',
            field=models.BooleanField(
                default=False,
                help_text="An administrator has all rights. Please don't give this right to all juries and volunteers.",
                verbose_name='administrator'),
        ),
        migrations.RunPython(
            merge_admins,
            separate_admins,
            elidable=True,
        ),
        migrations.DeleteModel(
            name='AdminRegistration',
        ),
    ]
