diff --git a/handlers/admin/admin_servers.py b/handlers/admin/admin_servers.py index ae511623..160d91dd 100644 --- a/handlers/admin/admin_servers.py +++ b/handlers/admin/admin_servers.py @@ -1,4 +1,4 @@ -from aiogram import Bot, F, Router, types +from aiogram import F, Router, types from aiogram.fsm.context import FSMContext from aiogram.fsm.state import State, StatesGroup from aiogram.types import InlineKeyboardButton diff --git a/handlers/keys/key_management.py b/handlers/keys/key_management.py index fb0f825b..cde589ed 100644 --- a/handlers/keys/key_management.py +++ b/handlers/keys/key_management.py @@ -22,7 +22,7 @@ from config import ( ) from database import get_balance, get_trial, store_key, update_balance from handlers.keys.key_utils import create_key_on_cluster -from handlers.texts import KEY, NULL_BALANCE, key_message_success +from handlers.texts import DISCOUNTS, KEY, NULL_BALANCE, key_message_success from handlers.utils import generate_random_email, get_least_loaded_cluster from logger import logger @@ -90,22 +90,21 @@ async def handle_key_creation( if trial_status == 0: expiry_time = current_time + timedelta(days=TRIAL_TIME) logger.info(f"Assigned 1-day trial to user {tg_id}.") - - await session.execute( - "UPDATE connections SET trial = 1 WHERE tg_id = $1", tg_id - ) + + await session.execute("UPDATE connections SET trial = 1 WHERE tg_id = $1", tg_id) await create_key(tg_id, expiry_time, state, session, message_or_query) else: builder = InlineKeyboardBuilder() - for plan_id, price in RENEWAL_PRICES.items(): + for index, (plan_id, price) in enumerate(RENEWAL_PRICES.items()): discount_text = "" - if plan_id == "3": - discount_text = " (5% скидка)" - elif plan_id == "6": - discount_text = " (10% скидка)" - elif plan_id == "12": - discount_text = " (20% 🔥)" + + if plan_id in DISCOUNTS: + discount_percentage = DISCOUNTS[plan_id] + discount_text = f" ({discount_percentage}% скидка)" + + if index == len(RENEWAL_PRICES) - 1: + discount_text = f" ({discount_percentage}% 🔥)" builder.row( InlineKeyboardButton( @@ -122,7 +121,6 @@ async def handle_key_creation( await state.set_state(Form.waiting_for_server_selection) - @router.callback_query(F.data.startswith("select_plan_")) async def select_tariff_plan(callback_query: CallbackQuery, state: FSMContext, session: Any): tg_id = callback_query.message.chat.id diff --git a/handlers/keys/keys.py b/handlers/keys/keys.py index c35bd921..236545b4 100644 --- a/handlers/keys/keys.py +++ b/handlers/keys/keys.py @@ -17,6 +17,7 @@ from handlers.keys.key_utils import ( update_key_on_cluster, ) from handlers.texts import ( + DISCOUNTS, INSUFFICIENT_FUNDS_MSG, KEY_NOT_FOUND_MSG, NO_KEYS, @@ -290,31 +291,34 @@ async def process_callback_renew_key(callback_query: types.CallbackQuery, sessio expiry_time = record["expiry_time"] builder = InlineKeyboardBuilder() + builder.row( InlineKeyboardButton( text=f'📅 1 месяц ({RENEWAL_PLANS["1"]["price"]} руб.)', callback_data=f"renew_plan|1|{client_id}", ) ) + builder.row( InlineKeyboardButton( - text=f'📅 3 месяца ({RENEWAL_PLANS["3"]["price"]} руб.) 5% скидка', + text=f'📅 3 месяца ({RENEWAL_PLANS["3"]["price"]} руб.) {DISCOUNTS["3"]}% скидка', callback_data=f"renew_plan|3|{client_id}", ) ) + builder.row( InlineKeyboardButton( - text=f'📅 6 месяцев ({RENEWAL_PLANS["6"]["price"]} руб.) 10% скидка', + text=f'📅 6 месяцев ({RENEWAL_PLANS["6"]["price"]} руб.) {DISCOUNTS["6"]}% скидка', callback_data=f"renew_plan|6|{client_id}", ) ) + builder.row( InlineKeyboardButton( - text=f'📅 12 месяцев ({RENEWAL_PLANS["12"]["price"]} руб.) (20% 🔥)', + text=f'📅 12 месяцев ({RENEWAL_PLANS["12"]["price"]} руб.) ({DISCOUNTS["12"]}% 🔥)', callback_data=f"renew_plan|12|{client_id}", ) ) - back_button = InlineKeyboardButton(text="🔙 Назад", callback_data="view_keys") builder.row(back_button)