mirror of
https://github.com/BEDOLAGA-DEV/remnawave-bedolaga-telegram-bot.git
synced 2026-02-28 23:35:59 +00:00
@@ -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,32 @@ 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(
|
||||
|
||||
Reference in New Issue
Block a user