from django.db import migrations, models


def mark_existing_pending_reservations(apps, schema_editor):
    StockTransfer = apps.get_model("shop_management", "StockTransfer")
    StockTransfer.objects.filter(status="pending", source_stock__isnull=False).update(
        source_quantity_reserved=True
    )


class Migration(migrations.Migration):
    dependencies = [
        ("shop_management", "0071_stock_average_buy_price_4dp"),
    ]

    operations = [
        migrations.AddField(
            model_name="stocktransfer",
            name="source_quantity_reserved",
            field=models.BooleanField(
                default=False,
                help_text=(
                    "True while a pending transfer quantity is already deducted "
                    "from source stock."
                ),
            ),
        ),
        migrations.RunPython(
            mark_existing_pending_reservations,
            migrations.RunPython.noop,
        ),
    ]
