71 lines
2.5 KiB
Python
71 lines
2.5 KiB
Python
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
|
|
|
|
from handlers.buttons import CHANGE_TARIFF, DISCOUNT_TARIFF, MAIN_MENU, MAX_DISCOUNT_TARIFF, RENEW_KEY_NOTIFICATION
|
|
|
|
|
|
def build_notification_kb(email: str) -> InlineKeyboardMarkup:
|
|
"""
|
|
Формирует inline-клавиатуру для уведомлений.
|
|
Кнопки: "🔄 Продлить VPN" (callback_data содержит email) и "👤 Личный кабинет".
|
|
"""
|
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
|
|
builder = InlineKeyboardBuilder()
|
|
builder.button(text=RENEW_KEY_NOTIFICATION, callback_data=f"renew_key|{email}")
|
|
builder.button(text=MAIN_MENU, callback_data="profile")
|
|
builder.adjust(1)
|
|
return builder.as_markup()
|
|
|
|
|
|
def build_change_tariff_kb(email: str) -> InlineKeyboardMarkup:
|
|
"""
|
|
Формирует inline-клавиатуру для смены тарифа.
|
|
Кнопки: "🔄 Сменить тариф" (callback_data содержит email) и "👤 Личный кабинет".
|
|
"""
|
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
|
|
builder = InlineKeyboardBuilder()
|
|
builder.button(text=CHANGE_TARIFF, callback_data=f"renew_key|{email}")
|
|
builder.button(text=MAIN_MENU, callback_data="profile")
|
|
builder.adjust(1)
|
|
return builder.as_markup()
|
|
|
|
|
|
def build_notification_expired_kb() -> InlineKeyboardMarkup:
|
|
"""
|
|
Формирует inline-клавиатуру для уведомлений после удаления или продления.
|
|
Кнопка: "👤 Личный кабинет"
|
|
"""
|
|
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
|
|
|
builder = InlineKeyboardBuilder()
|
|
builder.button(text=MAIN_MENU, callback_data="profile")
|
|
return builder.as_markup()
|
|
|
|
|
|
def build_hot_lead_kb(final: bool = False) -> InlineKeyboardMarkup:
|
|
return InlineKeyboardMarkup(
|
|
inline_keyboard=[
|
|
[
|
|
InlineKeyboardButton(
|
|
text=DISCOUNT_TARIFF if not final else MAX_DISCOUNT_TARIFF,
|
|
callback_data=("hot_lead_discount" if not final else "hot_lead_final_discount"),
|
|
)
|
|
]
|
|
]
|
|
)
|
|
|
|
|
|
def build_tariffs_keyboard(tariffs: list[dict], prefix: str = "tariff") -> InlineKeyboardMarkup:
|
|
buttons = [
|
|
[
|
|
InlineKeyboardButton(
|
|
text=f"{t['name']} — {t['price_rub']}₽",
|
|
callback_data=f"{prefix}|{t['id']}",
|
|
)
|
|
]
|
|
for t in tariffs
|
|
]
|
|
|
|
return InlineKeyboardMarkup(inline_keyboard=buttons)
|