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)