from aiogram import F, Router from aiogram.filters import Command from aiogram.fsm.context import FSMContext from aiogram.types import CallbackQuery, Message from sqlalchemy.ext.asyncio import AsyncSession from bot.filters.admins import AdminFilter from bot.keyboards.admins import main_menu from misc.utils import build_adm_main_menu_text from schemas.di import DependenciesDTO router = Router() @router.message(AdminFilter(), Command(commands=["start", "cancel"])) async def standard_start( msg: Message, state: FSMContext, session: AsyncSession, deps: DependenciesDTO ): await state.clear() users = await deps.user_repository.user_count(session) await msg.answer( build_adm_main_menu_text(user_count=users, user_id=msg.from_user.id), reply_markup=main_menu ) @router.callback_query(AdminFilter(), F.data == "menu:main") async def main_menu_cb( cb: CallbackQuery, state: FSMContext, session: AsyncSession, deps: DependenciesDTO ): await state.clear() users = await deps.user_repository.user_count(session) await cb.message.edit_text( build_adm_main_menu_text(user_count=users, user_id=cb.from_user.id), reply_markup=main_menu )