Update user.py

This commit is contained in:
Egor
2026-01-24 09:56:06 +03:00
committed by GitHub
parent cc5aa4278d
commit cd80164bee
+29 -1
View File
@@ -416,9 +416,37 @@ async def add_user_balance(
await db.commit()
await db.refresh(user)
user_id_display = user.telegram_id or user.email or f"#{user.id}"
logger.info(f"💰 Баланс пользователя {user_id_display} изменен: {old_balance}{user.balance_kopeks} (изменение: +{amount_kopeks})")
# Автоматическое возобновление приостановленной суточной подписки
try:
from app.database.crud.subscription import resume_daily_subscription
from app.database.models import SubscriptionStatus
subscription = user.subscription
if subscription and subscription.status == SubscriptionStatus.DISABLED.value:
# Проверяем что это суточный тариф
is_daily = getattr(subscription, 'is_daily_tariff', False)
if is_daily and subscription.tariff:
daily_price = getattr(subscription.tariff, 'daily_price_kopeks', 0)
# Если баланс достаточный для суточной оплаты - возобновляем
if daily_price > 0 and user.balance_kopeks >= daily_price:
await resume_daily_subscription(db, subscription)
logger.info(
f"✅ Автоматически возобновлена суточная подписка {subscription.id} "
f"после пополнения баланса (user_id={user.id})"
)
# Синхронизируем с RemnaWave
try:
from app.services.subscription_service import SubscriptionService
subscription_service = SubscriptionService()
await subscription_service.update_remnawave_user(db, subscription)
except Exception as sync_err:
logger.warning(f"Не удалось синхронизировать с RemnaWave: {sync_err}")
except Exception as resume_err:
logger.warning(f"Ошибка при попытке возобновить суточную подписку: {resume_err}")
return True
except Exception as e: