from aiogram import Router from aiogram.types import Message from aiogram.filters import Command from bot.filters import AdminFilter from bot.services.users import upsert_user_from_telegram from bot.ui.keyboards import main_keyboard from bot.ui.formatters import get_asf_status_text from bot.logging_utils import describe_user, get_logger router = Router() logger = get_logger(__name__) @router.message(Command("start"), AdminFilter()) async def start_handler(message: Message) -> None: user = describe_user(message.from_user.id if message.from_user else None) await upsert_user_from_telegram(message.from_user) logger.info("Получена команда /start: %s", user) try: await message.delete() logger.info("Сообщение /start удалено: %s", user) except Exception: logger.exception("Не удалось удалить сообщение /start: %s", user) try: await message.answer(get_asf_status_text(), reply_markup=main_keyboard()) logger.info("Главное меню отправлено: %s", user) except Exception as error: logger.exception("Не удалось отправить главное меню: %s", user) await message.answer(f"Ошибка: {error}")