Files
shveitechbot/handlers/client/menu.py

49 lines
1.5 KiB
Python

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(
"<b>Добрый день!</b>\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(
"<b>Добрый день!</b>\n" 'Нажмите "Каталог" чтобы выбрать товар или воспользуйтесь поиском.',
reply_markup=main_menu_kb(cart_items),
)