Files
FascioSchoolBot/app/bot/dialogs/flows/events/getters.py
2025-10-03 14:45:26 +03:00

33 lines
1.0 KiB
Python

from aiogram.types import User
from aiogram_dialog import DialogManager
from app.infrastructure.database.crud import (
get_event_by_id,
get_events_list,
)
from app.infrastructure.database.models import Event
async def events_list_getter(
dialog_manager: DialogManager, event_from_user: User, **kwargs
) -> dict[str, str]:
events = await get_events_list(dialog_manager.middleware_data["session"])
return {"events": [{"title": event.title, "id": event.id} for event in events]}
async def event_getter(dialog_manager: DialogManager, **kwargs) -> dict[str, Event]:
return {
"event_obj": await get_event_by_id(
dialog_manager.middleware_data["session"],
int(dialog_manager.dialog_data["selected_event"]),
)
}
async def registraion_getter(dialog_manager: DialogManager, **kwargs):
user = dialog_manager.middleware_data["user"]
event_id = dialog_manager.dialog_data["selected_event"]
return {
"is_registered_to_event": any(ue.event_id == event_id for ue in user.events)
}