from django.db import migrations, models


def copy_purchase_item_buy_price(apps, schema_editor):
    SaleItem = apps.get_model("shop_management", "SaleItem")
    for item in SaleItem.objects.select_related("purchase_item").all():
        if item.purchase_item_id and item.purchase_item:
            item.buy_price = item.purchase_item.buy_price
            item.save(update_fields=["buy_price"])


class Migration(migrations.Migration):

    dependencies = [
        ("shop_management", "0049_customer_is_general_customer"),
    ]

    operations = [
        migrations.AddField(
            model_name="saleitem",
            name="buy_price",
            field=models.DecimalField(
                blank=True,
                decimal_places=2,
                max_digits=10,
                null=True,
            ),
        ),
        migrations.RunPython(copy_purchase_item_buy_price, migrations.RunPython.noop),
    ]
