from aiogram.types import CallbackQuery from aiogram_dialog import DialogManager from aiogram_dialog.widgets.kbd import Button, Select from app.infrastructure.database.crud import ( register_user_to_event, unregister_user_to_event, ) from .getters import registration_getter async def on_event_selected( callback: CallbackQuery, widget: Select, manager: DialogManager, item_id: str, ): manager.dialog_data["selected_event"] = int(item_id) await manager.next() async def change_registration( callback: CallbackQuery, widget: Button, manager: DialogManager, **kwargs, ): user = manager.middleware_data["user"] event_id = manager.dialog_data["selected_event"] if (await registration_getter(manager))["is_registered_to_event"]: await unregister_user_to_event( manager.middleware_data["session"], user.id, event_id ) else: if not user.phone: await callback.answer("Пожалуйста, заполните ваш номер телефона в профиле", show_alert=True) else: await register_user_to_event( manager.middleware_data["session"], user.id, event_id )