first commit

This commit is contained in:
Anurag Jangid 2026-10-08 02:52:58 +05:30
commit 34ea15a54d
246 changed files with 18660 additions and 0 deletions

View 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)