Add referral bonus configuration and enhance payment processing logic

- Introduced a new environment variable REFERRAL_ONE_BONUS_PER_REFEREE to control referral bonus application.
- Updated referral bonus application logic to skip bonuses for users with active subscriptions at the time of payment.
- Enhanced payment processing functions across multiple services to include current payment ID and skip logic for active users.
- Added a new database method to count succeeded payments for users, improving referral bonus eligibility checks.
This commit is contained in:
machka-pasla
2025-08-17 17:27:33 +03:00
parent ef9ebc1918
commit 157c3a7c61
10 changed files with 110 additions and 7 deletions
+6 -1
View File
@@ -96,7 +96,12 @@ class StarsService:
return
referral_bonus = await self.referral_service.apply_referral_bonuses_for_payment(
session, message.from_user.id, months)
session,
message.from_user.id,
months,
current_payment_db_id=payment_db_id,
skip_if_active_before_payment=True,
)
await session.commit()
applied_days = referral_bonus.get("referee_bonus_applied_days") if referral_bonus else None