Files
Solo_bot/keyboards/admin/users_kb.py
T

117 lines
3.2 KiB
Python

from aiogram.filters.callback_data import CallbackData
from aiogram.types import InlineKeyboardButton, InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from keyboards.admin.panel_kb import build_admin_back_btn
class AdminUserEditorCallback(CallbackData, prefix='admin_users_editor'):
action: str
data: str
def build_user_edit_kb(tg_id: int, key_records: list) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
for email in key_records:
builder.button(
text=f"🔑 {email}",
callback_data=AdminUserEditorCallback(
action="users_key_edit",
data=email
).pack()
)
builder.button(
text="📝 Изменить баланс",
callback_data=AdminUserEditorCallback(
action="users_balance_change",
data=tg_id
).pack()
)
builder.button(
text="🔄 Восстановить пробник",
callback_data=AdminUserEditorCallback(
action="users_trial_restore",
data=tg_id
).pack()
)
builder.button(
text="❌ Удалить клиента",
callback_data=AdminUserEditorCallback(
action="users_delete_user",
data=tg_id
).pack()
)
builder.row(
build_admin_back_btn("users_editor")
)
return builder.as_markup()
def build_user_delete_kb(tg_id: int):
builder = InlineKeyboardBuilder()
builder.button(
text="❌ Удалить клиента",
callback_data=AdminUserEditorCallback(
action="users_delete_user_confirm",
data=tg_id
).pack()
)
builder.row(
build_admin_back_btn("users_editor")
)
return builder.as_markup()
def build_key_edit_kb(key_details: dict, email: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="ℹ️ Получить информацию о юзере",
callback_data=AdminUserEditorCallback(
action="users_info",
data=key_details["tg_id"]
).pack()
)
)
builder.row(
InlineKeyboardButton(
text="⏳ Изменить время истечения",
callback_data=AdminUserEditorCallback(
action="users_change_expiry",
data=email
).pack()
)
)
builder.row(
InlineKeyboardButton(
text="❌ Удалить ключ",
callback_data=AdminUserEditorCallback(
action="users_delete_key",
data=email
).pack()
)
)
builder.row(
build_admin_back_btn("users_editor")
)
return builder.as_markup()
def build_key_delete_kb(client_id: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.row(
InlineKeyboardButton(
text="✅ Да, удалить",
callback_data=AdminUserEditorCallback(
action="users_delete_key_confirm",
data=client_id
).pack()
)
)
builder.row(
build_admin_back_btn("users_editor")
)
return builder.as_markup()