from aiogram import Router, F from aiogram.types import CallbackQuery from aiogram.fsm.context import FSMContext from sqlalchemy.ext.asyncio import AsyncSession from config import VERIFIED_ACCOUNTS from misc.kb.client import ( render_catalogue, ) from services.catalogue import CatalogueService router = Router() @router.callback_query(F.data.startswith("cat:")) async def subcatalogue( cb: CallbackQuery, state: FSMContext, session: AsyncSession, catalogue_service: CatalogueService, ): await state.clear() cat_id = cb.data.split(":")[1] is_admin = cb.from_user.id in VERIFIED_ACCOUNTS view = await catalogue_service.build_category_view(session, cat_id) kb = render_catalogue(view, is_admin=is_admin) path = await catalogue_service.get_path(session, cat_id) if cb.message.photo: await cb.message.delete() await cb.message.answer( f"{path}", reply_markup=kb, ) return await cb.message.edit_text( f"{path}", reply_markup=kb, )