feat(admin): add admin notification system for deposits, purchases, and renewals
This commit is contained in:
@@ -14,6 +14,7 @@ from repositories.subscriptions import SubscriptionRepository
|
||||
from repositories.users import UserRepository
|
||||
from schemas.subscriptions import InternalSquads, SubscriptionPlan, SubscriptionStatus
|
||||
from services import rw as rw_service
|
||||
from services.admin_notifications import notify_subscription_renewal
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
|
||||
@@ -91,7 +92,7 @@ class RenewalService:
|
||||
await self._notify_user(user_id, AUTORENEWAL_INSUFFICIENT_FUNDS)
|
||||
return False
|
||||
|
||||
result = await self.user_repository.decrease_user_balance(
|
||||
renewed_user = await self.user_repository.decrease_user_balance(
|
||||
session,
|
||||
user_id,
|
||||
price,
|
||||
@@ -99,7 +100,7 @@ class RenewalService:
|
||||
description=f"autorenewal: devices={subscription.devices}, duration={subscription.duration_days}d, whitelists={subscription.whitelists}",
|
||||
)
|
||||
|
||||
if not result:
|
||||
if not renewed_user:
|
||||
logger.error("Failed to decrease balance for user %d", user_id)
|
||||
return False
|
||||
|
||||
@@ -136,6 +137,17 @@ class RenewalService:
|
||||
end_date=new_end_date.strftime("%d.%m.%Y"),
|
||||
),
|
||||
)
|
||||
await notify_subscription_renewal(
|
||||
self.bot,
|
||||
user_id=user_id,
|
||||
amount=price,
|
||||
balance_before=renewed_user.balance + price,
|
||||
balance_after=renewed_user.balance,
|
||||
devices=subscription.devices,
|
||||
duration_days=subscription.duration_days,
|
||||
whitelists=subscription.whitelists,
|
||||
end_date=new_end_date.strftime("%d.%m.%Y"),
|
||||
)
|
||||
|
||||
logger.info("Successfully renewed subscription for user %d", user_id)
|
||||
return True
|
||||
|
||||
Reference in New Issue
Block a user