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