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("Ответ отправлен пользователю.")