From c2b68e1afaac2183eb29ded7660dcf60e7ae32fd Mon Sep 17 00:00:00 2001 From: Fringg Date: Wed, 15 Apr 2026 13:24:07 +0300 Subject: [PATCH] fix: apply create-vs-update fix to all remaining tariff_purchase flows Fixed 6 more locations in tariff_purchase.py that had the same broken pattern (custom purchase, daily purchase, trial conversion, tariff switch, daily switch, instant switch). All now use _should_create based on multi-tariff mode instead of falling back to user UUID. --- app/handlers/subscription/tariff_purchase.py | 96 ++++++++++---------- 1 file changed, 48 insertions(+), 48 deletions(-) diff --git a/app/handlers/subscription/tariff_purchase.py b/app/handlers/subscription/tariff_purchase.py index d68eaf41..f663f8ca 100644 --- a/app/handlers/subscription/tariff_purchase.py +++ b/app/handlers/subscription/tariff_purchase.py @@ -1057,20 +1057,20 @@ async def handle_custom_confirm( # При покупке тарифа ВСЕГДА сбрасываем трафик в панели try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=True, reset_reason='покупка тарифа', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=True, @@ -1871,20 +1871,20 @@ async def confirm_daily_tariff_purchase( # При покупке тарифа ВСЕГДА сбрасываем трафик в панели try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=True, reset_reason='покупка суточного тарифа', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=True, @@ -2343,20 +2343,20 @@ async def confirm_tariff_extend( # Обновляем пользователя в Remnawave try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_PAYMENT or was_trial, reset_reason='конвертация триала' if was_trial else 'продление тарифа', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_PAYMENT or was_trial, @@ -2976,20 +2976,20 @@ async def confirm_tariff_switch( # Обновляем пользователя в Remnawave try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH, reset_reason='переключение тарифа', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH, @@ -3224,20 +3224,20 @@ async def confirm_daily_tariff_switch( # Обновляем пользователя в Remnawave (сброс трафика по админ-настройке) try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH, reset_reason='смена на суточный тариф', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH, @@ -3918,20 +3918,20 @@ async def confirm_instant_switch( # Обновляем пользователя в Remnawave (сброс трафика по админ-настройке) try: subscription_service = SubscriptionService() - _panel_uuid = ( - subscription.remnawave_uuid - if settings.is_multi_tariff_enabled() and subscription.remnawave_uuid - else getattr(db_user, 'remnawave_uuid', None) - ) - if _panel_uuid: - await subscription_service.update_remnawave_user( + if settings.is_multi_tariff_enabled(): + _should_create = not subscription.remnawave_uuid + else: + _should_create = not getattr(db_user, 'remnawave_uuid', None) + + if _should_create: + await subscription_service.create_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH, reset_reason='мгновенное переключение тарифа', ) else: - await subscription_service.create_remnawave_user( + await subscription_service.update_remnawave_user( db, subscription, reset_traffic=settings.RESET_TRAFFIC_ON_TARIFF_SWITCH,