PromotionTypeChoices was an empty enum, so Recipient.promotion_type could never hold a real value and every payout without an explicit Recipient.wallet_uuid fell through to the same default wallet regardless of what kind of promotion it was. Give PromotionTypeChoices real values (first_ad_view, capture, first_ad_create) and branch Recipient.get_wallet_category_uuid() on it: first_ad_view (or unset) still pays into the user's cash-like reward wallet (WALLET_USER_BILLBOARD_VISIT_INCOME); capture/first_ad_create are billboard/ad credit, not a cash reward, so they route to the new WALLET_ADVERTISING_TRANSIT setting (same wallet-service UUID as the advertising repo's own setting of that name) instead. An explicit Recipient.wallet_uuid still wins over promotion_type. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| __init__.py | ||
| asgi.py | ||
| celery.py | ||
| settings.py | ||
| urls.py | ||
| wsgi.py | ||