from datetime import date from aiogram.types import CallbackQuery from aiogram_dialog import DialogManager from aiogram_dialog.widgets.input import ManagedTextInput from aiogram_dialog.widgets.kbd import Button, Calendar from app.infrastructure.database.crud import create_event async def input_title( callback: CallbackQuery, widget: ManagedTextInput, manager: DialogManager, text: date, ): if "event_obj" not in manager.dialog_data: manager.dialog_data["event_obj"] = {} manager.dialog_data["event_obj"]["title"] = text await manager.next() async def input_description( callback: CallbackQuery, widget: ManagedTextInput, manager: DialogManager, text: date, ): manager.dialog_data["event_obj"]["description"] = text await manager.next() async def input_start_date( callback: CallbackQuery, widget: Calendar, manager: DialogManager, selected_date: date, ): manager.dialog_data["event_obj"]["start_date"] = selected_date await manager.next() async def input_end_date( callback: CallbackQuery, widget: Calendar, manager: DialogManager, selected_date: date, ): manager.dialog_data["event_obj"]["end_date"] = selected_date await manager.next() async def confirm_creation( callback: CallbackQuery, button: Button, manager: DialogManager, ): await create_event( manager.middleware_data["session"], **manager.dialog_data["event_obj"] ) await manager.done()