from aiogram import Router, F from aiogram.types import CallbackQuery from bot.data.topic_map import user_topic_map router = Router(name="form_callbacks") TEXTS = { "anketa": { "accept": "🎉 Ваша анкета принята!\n\nДобро пожаловать в проект!", "reject": "❌ Ваша анкета отклонена.\n\nВы можете попробовать позже." }, "application": { "accept": "🎉 Ваша анкета принята!\n\nДобро пожаловать в проект!", "reject": "❌ Ваша анкета отклонена.\n\nВы можете попробовать позже." }, "union": { "accept": "🤝 Союз одобрен!\n\nТеперь вы в союзе.", "reject": "💔 Союз отклонён.\n\nВы можете обсудить детали с администрацией." } } @router.callback_query(F.data.regexp(r"^([a-z_]+):(accept|reject):(\d+)$")) async def process_decision_callback(callback: CallbackQuery): kind, action, thread_id_str = callback.data.split(":") thread_id = int(thread_id_str) user_id = None for (uid, k), tid in user_topic_map.items(): if k == kind and tid == thread_id: user_id = uid break if not user_id: await callback.answer("Пользователь не найден.", show_alert=True) return text_to_send = TEXTS.get(kind, {}).get(action) if not text_to_send: await callback.answer("Некорректные данные.", show_alert=True) return await callback.message.bot.send_message(chat_id=user_id, text=text_to_send, parse_mode="HTML") await callback.message.edit_reply_markup(reply_markup=None) await callback.answer("Ответ отправлен пользователю.")