savagedb_bot/handlers/admin/main_admin.py

71 lines
3.0 KiB
Python

# Основные админ хэндлеры
import logging
from aiogram import Router
from aiogram.filters import Command
from aiogram.types import Message, CallbackQuery
from aiogram.utils.keyboard import InlineKeyboardBuilder
from database import DatabaseManager
from config.settings import ADMIN_USER_ID
router = Router()
@router.callback_query(lambda c: c.data == "admin_stats")
async def admin_stats_callback(callback: CallbackQuery, db: DatabaseManager = None):
"""Главная админ панель"""
if callback.from_user.id != ADMIN_USER_ID:
await callback.answer("❌ Access denied", show_alert=True)
return
builder = InlineKeyboardBuilder()
builder.button(text="👥 Users Analytics", callback_data="admin_users")
builder.button(text="💰 Finance Analytics", callback_data="admin_finance")
builder.button(text="⚙️ Operations Analytics", callback_data="admin_operations")
builder.button(text="📈 Business Analytics", callback_data="admin_business")
builder.button(text="🏠 Main Menu", callback_data="main_menu")
builder.adjust(2, 2, 1)
admin_text = (
"🔧 **Admin Panel**\n\n"
"Welcome to the administration dashboard!\n\n"
"**Available sections:**\n"
"• 👥 **Users Analytics** - User statistics and growth\n"
"• 💰 **Finance Analytics** - Revenue and payment data\n"
"• ⚙️ **Operations Analytics** - System performance\n"
"• 📈 **Business Analytics** - Business insights\n\n"
"Select a section to view detailed analytics:"
)
await callback.message.edit_text(admin_text, reply_markup=builder.as_markup(), parse_mode="Markdown")
await callback.answer()
@router.message(Command("admin_stats"))
async def admin_stats_handler(message: Message, db: DatabaseManager = None):
"""Команда доступа к админ панели"""
if message.from_user.id != ADMIN_USER_ID:
await message.answer("❌ Access denied")
return
builder = InlineKeyboardBuilder()
builder.button(text="👥 Users Analytics", callback_data="admin_users")
builder.button(text="💰 Finance Analytics", callback_data="admin_finance")
builder.button(text="⚙️ Operations Analytics", callback_data="admin_operations")
builder.button(text="📈 Business Analytics", callback_data="admin_business")
builder.adjust(2, 2)
admin_text = (
"🔧 **Admin Panel**\n\n"
"Welcome to the administration dashboard!\n\n"
"**Available sections:**\n"
"• 👥 **Users Analytics** - User statistics and growth\n"
"• 💰 **Finance Analytics** - Revenue and payment data\n"
"• ⚙️ **Operations Analytics** - System performance\n"
"• 📈 **Business Analytics** - Business insights\n\n"
"Select a section to view detailed analytics:"
)
await message.answer(admin_text, reply_markup=builder.as_markup(), parse_mode="Markdown")