44 lines
1.2 KiB
Python
44 lines
1.2 KiB
Python
from aiogram.filters.callback_data import CallbackData
|
||
from aiogram.types import InlineKeyboardMarkup
|
||
from aiogram.utils.keyboard import InlineKeyboardBuilder
|
||
|
||
from keyboards.admin.panel_kb import AdminPanelCallback, build_admin_back_btn
|
||
|
||
|
||
class AdminCouponDeleteCallback(CallbackData, prefix="admin_coupon_delete"):
|
||
coupon_code: str
|
||
|
||
|
||
def build_coupons_kb() -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
builder.button(
|
||
text="➕ Создать купон",
|
||
callback_data=AdminPanelCallback(action="coupons_create").pack()
|
||
)
|
||
builder.button(
|
||
text="Купоны",
|
||
callback_data=AdminPanelCallback(action="coupons_list").pack()
|
||
)
|
||
builder.row(
|
||
build_admin_back_btn()
|
||
)
|
||
return builder.as_markup()
|
||
|
||
|
||
def build_coupons_list_kb(coupons: list) -> InlineKeyboardMarkup:
|
||
builder = InlineKeyboardBuilder()
|
||
|
||
for coupon in coupons:
|
||
coupon_code = coupon["code"]
|
||
builder.button(
|
||
text=f"❌ Удалить {coupon_code}",
|
||
callback_data=AdminCouponDeleteCallback(
|
||
coupon_code=coupon_code
|
||
).pack(),
|
||
)
|
||
|
||
builder.row(
|
||
build_admin_back_btn("coupons")
|
||
)
|
||
return builder.as_markup()
|