From 86970f0398242c020509c3b3f77c4273b9d6d39d Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:16:58 +0300 Subject: [PATCH 1/2] Update subscription.py --- app/cabinet/routes/subscription.py | 67 ++++++++++++++++++++++-------- 1 file changed, 49 insertions(+), 18 deletions(-) diff --git a/app/cabinet/routes/subscription.py b/app/cabinet/routes/subscription.py index c7724f6a..986a9ce0 100644 --- a/app/cabinet/routes/subscription.py +++ b/app/cabinet/routes/subscription.py @@ -963,6 +963,28 @@ async def get_trial_info( requires_payment = bool(settings.TRIAL_PAYMENT_ENABLED) price_kopeks = settings.TRIAL_ACTIVATION_PRICE if requires_payment else 0 + # Get trial parameters from tariff if configured (same logic as activate_trial) + try: + from app.database.crud.tariff import get_tariff_by_id, get_trial_tariff + + trial_tariff = await get_trial_tariff(db) + + if not trial_tariff: + trial_tariff_id = settings.get_trial_tariff_id() + if trial_tariff_id > 0: + trial_tariff = await get_tariff_by_id(db, trial_tariff_id) + if trial_tariff and not trial_tariff.is_active: + trial_tariff = None + + if trial_tariff: + traffic_limit_gb = trial_tariff.traffic_limit_gb + device_limit = trial_tariff.device_limit + tariff_trial_days = getattr(trial_tariff, 'trial_duration_days', None) + if tariff_trial_days: + duration_days = tariff_trial_days + except Exception as e: + logger.error(f'Error getting trial tariff for info: {e}') + # Check if user already has an active subscription if user.subscription: now = datetime.utcnow() @@ -1051,25 +1073,34 @@ async def activate_trial( trial_squads = [] tariff_id_for_trial = None - trial_tariff_id = settings.get_trial_tariff_id() - if trial_tariff_id: - try: - from app.database.crud.tariff import get_tariff_by_id + # First check for tariff with is_trial_available flag in DB (set via admin panel) + # Then fallback to TRIAL_TARIFF_ID from settings + trial_tariff = None + try: + from app.database.crud.tariff import get_tariff_by_id, get_trial_tariff - trial_tariff = await get_tariff_by_id(db, trial_tariff_id) - if trial_tariff: - trial_traffic_limit = trial_tariff.traffic_limit_gb - trial_device_limit = trial_tariff.device_limit - trial_squads = trial_tariff.allowed_squads or [] - tariff_id_for_trial = trial_tariff.id - tariff_trial_days = getattr(trial_tariff, 'trial_duration_days', None) - if tariff_trial_days: - trial_duration = tariff_trial_days - logger.info( - f'Using trial tariff {trial_tariff.name} (ID: {trial_tariff.id}) with squads: {trial_squads}' - ) - except Exception as e: - logger.error(f'Error getting trial tariff: {e}') + trial_tariff = await get_trial_tariff(db) + + if not trial_tariff: + trial_tariff_id = settings.get_trial_tariff_id() + if trial_tariff_id > 0: + trial_tariff = await get_tariff_by_id(db, trial_tariff_id) + if trial_tariff and not trial_tariff.is_active: + trial_tariff = None + + if trial_tariff: + trial_traffic_limit = trial_tariff.traffic_limit_gb + trial_device_limit = trial_tariff.device_limit + trial_squads = trial_tariff.allowed_squads or [] + tariff_id_for_trial = trial_tariff.id + tariff_trial_days = getattr(trial_tariff, 'trial_duration_days', None) + if tariff_trial_days: + trial_duration = tariff_trial_days + logger.info( + f'Using trial tariff {trial_tariff.name} (ID: {trial_tariff.id}) with squads: {trial_squads}' + ) + except Exception as e: + logger.error(f'Error getting trial tariff: {e}') # Create trial subscription subscription = await create_trial_subscription( From 5aca466d72e49358f7ad6533f67877733654b038 Mon Sep 17 00:00:00 2001 From: Egor Date: Mon, 2 Feb 2026 05:18:11 +0300 Subject: [PATCH 2/2] Update subscription.py --- app/cabinet/routes/subscription.py | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/app/cabinet/routes/subscription.py b/app/cabinet/routes/subscription.py index 986a9ce0..750eb9ac 100644 --- a/app/cabinet/routes/subscription.py +++ b/app/cabinet/routes/subscription.py @@ -1096,9 +1096,7 @@ async def activate_trial( tariff_trial_days = getattr(trial_tariff, 'trial_duration_days', None) if tariff_trial_days: trial_duration = tariff_trial_days - logger.info( - f'Using trial tariff {trial_tariff.name} (ID: {trial_tariff.id}) with squads: {trial_squads}' - ) + logger.info(f'Using trial tariff {trial_tariff.name} (ID: {trial_tariff.id}) with squads: {trial_squads}') except Exception as e: logger.error(f'Error getting trial tariff: {e}')