diff --git a/handlers/admin/coupons/keyboard.py b/handlers/admin/coupons/keyboard.py index d0ddd9c5..6c0a3eaf 100644 --- a/handlers/admin/coupons/keyboard.py +++ b/handlers/admin/coupons/keyboard.py @@ -1,14 +1,15 @@ from aiogram.filters.callback_data import CallbackData from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup from aiogram.utils.keyboard import InlineKeyboardBuilder +from typing import Optional from handlers.buttons import BACK - from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn class AdminCouponDeleteCallback(CallbackData, prefix="admin_coupon_delete"): coupon_code: str + confirm: Optional[bool] = None def build_coupons_kb() -> InlineKeyboardMarkup: @@ -50,3 +51,17 @@ def build_coupons_list_kb(coupons: list, current_page: int, total_pages: int) -> builder.row(build_admin_back_btn("coupons")) builder.adjust(2) return builder.as_markup() + + +def format_coupons_list(coupons: list, username_bot: str) -> str: + coupon_list = "📜 Список всех купонов:\n\n" + for coupon in coupons: + value_text = f"💰 Сумма: {coupon['amount']} рублей" if coupon["amount"] > 0 else f"⏳ Дней: {coupon['days']}" + coupon_list += ( + f"🏷️ Код: {coupon['code']}\n" + f"{value_text}\n" + f"🔢 Лимит использования: {coupon['usage_limit']} раз\n" + f"✅ Использовано: {coupon['usage_count']} раз\n" + f"🔗 Ссылка: https://t.me/{username_bot}?start=coupons_{coupon['code']}\n\n" + ) + return coupon_list