From b9e17be8554a65eaf765a0b5b36fee062205c66f Mon Sep 17 00:00:00 2001 From: Fringg Date: Thu, 5 Mar 2026 11:29:23 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=80=D0=B5=D0=B0=D0=BA=D1=82=D0=B8?= =?UTF-8?q?=D0=B2=D0=B0=D1=86=D0=B8=D1=8F=20DISABLED=20=D0=BF=D0=BE=D0=B4?= =?UTF-8?q?=D0=BF=D0=B8=D1=81=D0=BE=D0=BA=20=D0=BF=D1=80=D0=B8=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BA=D1=83=D0=BF=D0=BA=D0=B5=20=D1=83=D1=81=D1=82=D1=80?= =?UTF-8?q?=D0=BE=D0=B9=D1=81=D1=82=D0=B2=20=D0=B8=20=D0=B2=20REST=20API?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Добавлен вызов reactivate_subscription перед update_remnawave_user в 4 пропущенных местах: - handlers/subscription/devices.py (2 пути покупки устройств) - webapi/routes/subscriptions.py (эндпоинты добавления трафика и устройств) --- app/handlers/subscription/devices.py | 10 ++++++++++ app/webapi/routes/subscriptions.py | 17 +++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/app/handlers/subscription/devices.py b/app/handlers/subscription/devices.py index 806c1bcc..9ac70761 100644 --- a/app/handlers/subscription/devices.py +++ b/app/handlers/subscription/devices.py @@ -604,6 +604,11 @@ async def execute_change_devices(callback: types.CallbackQuery, db_user: User, d await db.commit() + # Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave) + from app.database.crud.subscription import reactivate_subscription + + await reactivate_subscription(db, subscription) + subscription_service = SubscriptionService() await subscription_service.update_remnawave_user(db, subscription) @@ -1272,6 +1277,11 @@ async def confirm_add_devices(callback: types.CallbackQuery, db_user: User, db: subscription.updated_at = datetime.now(UTC) await db.commit() + # Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave) + from app.database.crud.subscription import reactivate_subscription + + await reactivate_subscription(db, subscription) + subscription_service = SubscriptionService() await subscription_service.update_remnawave_user(db, subscription) diff --git a/app/webapi/routes/subscriptions.py b/app/webapi/routes/subscriptions.py index ee691e43..87c89bdd 100644 --- a/app/webapi/routes/subscriptions.py +++ b/app/webapi/routes/subscriptions.py @@ -19,6 +19,7 @@ from app.database.crud.subscription import ( deactivate_subscription, extend_subscription, get_subscription_by_user_id, + reactivate_subscription, remove_subscription_squad, replace_subscription, ) @@ -253,6 +254,14 @@ async def add_subscription_traffic_endpoint( ) -> SubscriptionResponse: subscription = await _get_subscription(db, subscription_id) subscription = await add_subscription_traffic(db, subscription, payload.gb) + + # Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave) + await reactivate_subscription(db, subscription) + + # Синхронизируем с RemnaWave + service = SubscriptionService() + await service.update_remnawave_user(db, subscription) + subscription = await _get_subscription(db, subscription.id) return _serialize_subscription(subscription) @@ -266,6 +275,14 @@ async def add_subscription_devices_endpoint( ) -> SubscriptionResponse: subscription = await _get_subscription(db, subscription_id) subscription = await add_subscription_devices(db, subscription, payload.devices) + + # Реактивируем подписку если она была DISABLED (например, после LIMITED в RemnaWave) + await reactivate_subscription(db, subscription) + + # Синхронизируем с RemnaWave + service = SubscriptionService() + await service.update_remnawave_user(db, subscription) + subscription = await _get_subscription(db, subscription.id) return _serialize_subscription(subscription)