from django.db import migrations, models


def normalize_product_prices(apps, schema_editor):
    ProductPrice = apps.get_model("shop_management", "ProductPrice")
    wholesale_prices = list(ProductPrice.objects.filter(price_type="WHOLESALE").order_by("id"))
    for price in wholesale_prices:
        retail_exists = ProductPrice.objects.filter(
            product_id=price.product_id,
            currency_id=price.currency_id,
            price_type="RETAIL",
        ).exists()
        if retail_exists:
            price.delete()
        else:
            price.price_type = "RETAIL"
            price.save(update_fields=["price_type"])


class Migration(migrations.Migration):
    dependencies = [("shop_management", "0103_account_system_account")]

    operations = [
        migrations.RunPython(normalize_product_prices, migrations.RunPython.noop),
        migrations.AlterField(
            model_name="productprice",
            name="price_type",
            field=models.CharField(choices=[("RETAIL", "Sale")], max_length=20),
        ),
    ]
