Files
Solo_bot/handlers/admin/stats/keyboard.py
T
2026-03-19 23:27:50 +03:00

62 lines
3.2 KiB
Python

from aiogram.types import InlineKeyboardMarkup
from aiogram.utils.keyboard import InlineKeyboardBuilder
from ..panel.keyboard import AdminPanelCallback, build_admin_back_btn
def build_audit_refresh_kb(source: str = "db") -> InlineKeyboardMarkup:
"""Клавиатура под сообщением аудита: выбор источника данных."""
builder = InlineKeyboardBuilder()
redis_text = "• Redis raw" if source == "redis" else "Redis raw"
db_text = "• БД вчера" if source == "db" else "БД вчера"
reset_text = "Сбросить Redis" if source == "redis" else "Сбросить БД"
builder.button(text=redis_text, callback_data=AdminPanelCallback(action="audit_refresh_redis").pack())
builder.button(text=db_text, callback_data=AdminPanelCallback(action="audit_refresh_db").pack())
builder.button(text=reset_text, callback_data=AdminPanelCallback(action=f"audit_reset_ask_{source}").pack())
builder.button(text="Администратор", callback_data=AdminPanelCallback(action="admin").pack())
builder.adjust(2, 1, 1)
return builder.as_markup()
def build_audit_source_kb() -> InlineKeyboardMarkup:
"""Клавиатура выбора источника аудита при первом открытии."""
builder = InlineKeyboardBuilder()
builder.button(text="Redis raw", callback_data=AdminPanelCallback(action="audit_refresh_redis").pack())
builder.button(text="БД вчера", callback_data=AdminPanelCallback(action="audit_refresh_db").pack())
builder.button(text="Администратор", callback_data=AdminPanelCallback(action="admin").pack())
builder.adjust(2, 1)
return builder.as_markup()
def build_audit_reset_confirm_kb(source: str) -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="Да, сбросить", callback_data=AdminPanelCallback(action=f"audit_reset_do_{source}").pack())
builder.button(text="Отмена", callback_data=AdminPanelCallback(action=f"audit_refresh_{source}").pack())
builder.button(text="Администратор", callback_data=AdminPanelCallback(action="admin").pack())
builder.adjust(1, 1, 1)
return builder.as_markup()
def build_stats_kb() -> InlineKeyboardMarkup:
builder = InlineKeyboardBuilder()
builder.button(text="🔄 Обновить", callback_data=AdminPanelCallback(action="stats").pack())
builder.button(
text="📥 Выгрузить пользователей в CSV",
callback_data=AdminPanelCallback(action="stats_export_users_csv").pack(),
)
builder.button(
text="📥 Выгрузить оплаты в CSV",
callback_data=AdminPanelCallback(action="stats_export_payments_csv").pack(),
)
builder.button(
text="📥 Выгрузить подписки в CSV",
callback_data=AdminPanelCallback(action="stats_export_keys_csv").pack(),
)
builder.button(
text="📥 Выгрузить горящих лидов",
callback_data=AdminPanelCallback(action="stats_export_hot_leads_csv").pack(),
)
builder.row(build_admin_back_btn())
builder.adjust(1)
return builder.as_markup()