From 0c782e623959b0bd8dbca7a361b07287befce908 Mon Sep 17 00:00:00 2001 From: Padreug Date: Mon, 27 Apr 2026 09:02:18 +0200 Subject: [PATCH] feat: add CRUD functions for public and pending event queries - get_public_events(): returns approved, non-canceled events - get_pending_events(): returns proposed events for admin review Co-Authored-By: Claude Opus 4.6 (1M context) --- crud.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/crud.py b/crud.py index 8abcbbb..9642a83 100644 --- a/crud.py +++ b/crud.py @@ -200,6 +200,26 @@ async def get_all_events() -> list[Event]: ) +async def get_public_events() -> list[Event]: + """Get approved, non-canceled events for public display.""" + return await db.fetchall( + """ + SELECT * FROM events.events + WHERE status = 'approved' AND canceled = FALSE + ORDER BY event_start_date ASC + """, + model=Event, + ) + + +async def get_pending_events() -> list[Event]: + """Get proposed events awaiting admin approval.""" + return await db.fetchall( + "SELECT * FROM events.events WHERE status = 'proposed' ORDER BY time DESC", + model=Event, + ) + + async def delete_event(event_id: str) -> None: await db.execute("DELETE FROM events.events WHERE id = :id", {"id": event_id})