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),
)