from django.core.management.base import BaseCommand

from apps.ledger.models import Account
from apps.ledger.services import get_system_account


class Command(BaseCommand):
    help = 'Create the singleton system ledger accounts if they do not exist.'

    SYSTEM_KINDS = [
        Account.Kind.COMMISSION_EXPENSE,
        Account.Kind.PAYOUTS_CLEARING,
        Account.Kind.CASH,
        Account.Kind.REVENUE,
    ]

    def handle(self, *args, **options):
        for kind in self.SYSTEM_KINDS:
            get_system_account(kind)
            self.stdout.write(self.style.SUCCESS(f'  ✓ system account: {kind}'))
        self.stdout.write(self.style.SUCCESS('System ledger accounts ready.'))
