Payment events: one central payment_result row for every path (callback, reconcile, Bazaar, renewal, 100% code), discount_applied, no duplicate order_created; Bazaar token never stored

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-13 14:44:50 +03:30
parent 8d8665edf3
commit 44ad2eabf3
4 changed files with 50 additions and 5 deletions

View File

@@ -136,6 +136,9 @@ class RedeemDiscountView(APIView):
# مبلغ سفارش واقعاً کم می‌شود تا مرحله‌ی پرداخت مبلغ تخفیف‌خورده را ببیند.
order_locked.amount = max(order_locked.amount - discount_amount, 0)
order_locked.save(update_fields=['amount'])
from payment import events as payment_events
payment_events.record('discount_applied', order=order_locked, code_id=discount.id,
discount_amount=discount_amount, amount=order_locked.amount)
# سفارشِ صفرتومانی را هیچ درگاهی نمی‌پذیرد؛ کدِ ۱۰۰٪ یعنی خرید
# همین‌جا تمام است (همان مسیرِ پرداختِ واقعی: اشتراک، اعلان، پورسانت).