from django.db import migrations


def uppercase_features(apps, schema_editor):
    MainFeature = apps.get_model("usermanagement", "MainFeature")
    SubFeature = apps.get_model("usermanagement", "SubFeature")

    # Update MainFeature
    for obj in MainFeature.objects.all():
        upper_name = obj.feature_name.upper()

        if obj.feature_name != upper_name:
            obj.feature_name = upper_name
            obj.save(update_fields=["feature_name"])

    # Update SubFeature
    for obj in SubFeature.objects.all():
        upper_name = obj.feature_name.upper()

        if obj.feature_name != upper_name:
            obj.feature_name = upper_name
            obj.save(update_fields=["feature_name"])


def reverse_uppercase(apps, schema_editor):
    # no reverse
    pass


class Migration(migrations.Migration):

    dependencies = [
        ("usermanagement", "0021_seed_main_sub_features"),
    ]

    operations = [
        migrations.RunPython(uppercase_features, reverse_uppercase),
    ]