kwork-poizonstore/account/signals.py
phzhik 1761f57fde + BonusProgramLevel
* Moved Bonus models to separate app
2024-05-26 02:40:04 +04:00

31 lines
965 B
Python

import logging
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver
from account.models import User, ReferralRelationship
from bonus_program.models import BonusProgramTransaction
logger = logging.getLogger(__name__)
@receiver(post_save, sender=User)
def handle_user_save(sender, instance: User, created, **kwargs):
pass
@receiver(post_save, sender=ReferralRelationship)
def handle_invitation_save(sender, instance: ReferralRelationship, created, **kwargs):
if created:
logger.info(f"User {instance.inviter_id} invited {instance.invited_id}")
# TODO: notify about invitation
@receiver(post_save, sender=BonusProgramTransaction)
@receiver(post_delete, sender=BonusProgramTransaction)
def handle_bonus_transaction_savedelete(sender, instance: BonusProgramTransaction, **kwargs):
# Recalculate user's balance
if instance.user is not None:
instance.user.recalculate_balance()