from django.db import migrations, models
from django.db.models import Q


def mark_clearing_accounts(apps, schema_editor):
    Account = apps.get_model("shop_management", "Account")
    Account.objects.filter(
        Q(name__istartswith="Sale ", name__iendswith=" Clearing")
        | Q(name__istartswith="Purchase ", name__iendswith=" Clearing")
    ).update(is_system_account=True)


class Migration(migrations.Migration):
    dependencies = [("shop_management", "0102_accounttransaction_audit_and_overdraft")]

    operations = [
        migrations.AddField(
            model_name="account",
            name="is_system_account",
            field=models.BooleanField(
                default=False,
                help_text="Internal clearing account hidden from operational account lists and balances.",
            ),
        ),
        migrations.RunPython(mark_clearing_accounts, migrations.RunPython.noop),
    ]
