from django.contrib.auth.models import User
from django.db.models.signals import post_save
from django.dispatch import receiver

from banking.common import DEFAULT_BALANCE
from banking.models.account import Account
from banking.utils import generate_account_iban


@receiver(post_save, sender=User)
def create_user_account(sender, instance, created, **kwargs):
    if created and not instance.is_superuser:
        Account.objects.create(
            iban=generate_account_iban(),
            balance=DEFAULT_BALANCE,
            user=instance,
            name="Current account 1",
        )
        Account.objects.create(
            iban=generate_account_iban(),
            balance=DEFAULT_BALANCE,
            user=instance,
            name="Current account 2",
        )
