first commit
This commit is contained in:
commit
34ea15a54d
246 changed files with 18660 additions and 0 deletions
33
backend/app/api/routes/events.py
Normal file
33
backend/app/api/routes/events.py
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
from fastapi import APIRouter, Query
|
||||
|
||||
from app.core.deps import DbSession
|
||||
from app.models.enums import EventStatus, EventType
|
||||
from app.schemas.catalog import EventDetail, EventSummary
|
||||
from app.schemas.orders import EventTicketTypePublic
|
||||
from app.services.catalog import event_to_detail, event_to_summary, get_event_by_slug, list_events
|
||||
from app.services.orders import list_event_ticket_types
|
||||
|
||||
router = APIRouter(prefix="/events", tags=["events"])
|
||||
|
||||
|
||||
@router.get("", response_model=list[EventSummary])
|
||||
def get_events(
|
||||
db: DbSession,
|
||||
category: EventType | None = Query(default=None),
|
||||
status: EventStatus | None = Query(default=EventStatus.published),
|
||||
upcoming: bool = Query(default=True),
|
||||
) -> list[EventSummary]:
|
||||
rows = list_events(db, category=category, status=status, upcoming=upcoming)
|
||||
return [event_to_summary(row) for row in rows]
|
||||
|
||||
|
||||
@router.get("/{event_id:int}/tickets", response_model=list[EventTicketTypePublic])
|
||||
def get_event_tickets(event_id: int, db: DbSession) -> list[EventTicketTypePublic]:
|
||||
rows = list_event_ticket_types(db, event_id)
|
||||
return [EventTicketTypePublic.model_validate(row) for row in rows]
|
||||
|
||||
|
||||
@router.get("/{slug}", response_model=EventDetail)
|
||||
def get_event(slug: str, db: DbSession) -> EventDetail:
|
||||
event = get_event_by_slug(db, slug=slug)
|
||||
return event_to_detail(event)
|
||||
Loading…
Add table
Add a link
Reference in a new issue