Files
MathApp/discount/receivers.py

21 lines
927 B
Python

"""
گیرنده‌ی سیگنال ثبت‌نام (accounts.signals.user_registered). accounts هیچ‌وقت
از وجود discount/Offer خبر نداره؛ این فایل فقط توی apps.py همین اپ (discount)
connect می‌شه. برای تغییر منطق «کدوم آفر به کی تعلق بگیره»، فقط همین‌جا و
discount/services.py رو لمس کنید — دقیقاً همون چیزی که سینیور خواسته بود.
"""
from accounts.signals import user_registered
from .models import Offer
from .services import apply_offer
def _assign_signup_offers(sender, **kwargs):
user_id = kwargs['user_id']
offers = Offer.objects.filter(auto_assign_on_signup=True, is_active=True)
for offer in offers:
apply_offer(user_id=user_id, offer=offer, source='signup_auto')
user_registered.connect(_assign_signup_offers, dispatch_uid='discount_assign_signup_offers')