import contextlib 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 misc.kb import main_menu_kb from repositories.order_items import OrderItemRepository from services.orders import OrderService router = Router() @router.message(Command("start")) async def user_main_menu( msg: Message, state: FSMContext, session: AsyncSession, order_items_repo: OrderItemRepository, ): await state.clear() cart_items = await order_items_repo.get_items_count_by_customer(session, msg.from_user.id) await msg.answer( "Добрый день!\n" 'Нажмите "Каталог" чтобы выбрать товар или воспользуйтесь поиском.', reply_markup=main_menu_kb(cart_items), ) @router.callback_query(F.data.startswith("menu:")) async def user_main_menu_cb( cb: CallbackQuery, state: FSMContext, session: AsyncSession, order_items_repo: OrderService, ): await state.clear() with contextlib.suppress(Exception): await cb.message.reply_to_message.delete() cart_items = await order_items_repo.get_items_count_by_customer(session, cb.from_user.id) await cb.message.edit_text( "Добрый день!\n" 'Нажмите "Каталог" чтобы выбрать товар или воспользуйтесь поиском.', reply_markup=main_menu_kb(cart_items), )