from fastapi import APIRouter, Request from fastapi.responses import HTMLResponse from fastapi.templating import Jinja2Templates from app.db import SessionDep from app.routers.public_orders import _build_page_info, get_route_from_domain router = APIRouter(tags=["public-site"]) templates = Jinja2Templates(directory="app/templates") @router.get("/", response_class=HTMLResponse) def public_home(request: Request, session: SessionDep) -> HTMLResponse: route = get_route_from_domain(request, session) page_info = _build_page_info(session, route) if page_info.current_round is None: return templates.TemplateResponse( request, "signup.html", {"route_name": route.name, "no_round_open": True} ) return templates.TemplateResponse(request, "order.html", {"route_name": route.name, "page": page_info}) @router.get("/tilmelding", response_class=HTMLResponse) def public_signup_page(request: Request, session: SessionDep) -> HTMLResponse: route = get_route_from_domain(request, session) return templates.TemplateResponse( request, "signup.html", {"route_name": route.name, "no_round_open": False} ) @router.get("/afhentning", response_class=HTMLResponse) def public_pickup_page(request: Request, session: SessionDep) -> HTMLResponse: route = get_route_from_domain(request, session) return templates.TemplateResponse( request, "pickup.html", {"route_name": route.name, "meeting_info": route.meeting_info} ) @router.get("/bestilling-modtaget", response_class=HTMLResponse) def public_order_confirmation(request: Request, session: SessionDep) -> HTMLResponse: route = get_route_from_domain(request, session) return templates.TemplateResponse(request, "order_confirmation.html", {"route_name": route.name})