"""Frontend page routes — serve Jinja2 HTML templates for the SPA-like dashboard."""
from __future__ import annotations
from pathlib import Path
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
router = APIRouter(tags=["pages"])
templates = Jinja2Templates(directory=str(Path(__file__).resolve().parent.parent / "templates"))
@router.get("/login", response_class=HTMLResponse)
async def login_page(request: Request):
return templates.TemplateResponse(request, "login.html")
@router.get("/dashboard/cs", response_class=HTMLResponse)
async def cs_dashboard(request: Request):
return templates.TemplateResponse(request, "dashboard/cs.html")
@router.get("/dashboard/fm", response_class=HTMLResponse)
async def fm_dashboard(request: Request):
return templates.TemplateResponse(request, "dashboard/fm.html")
@router.get("/dashboard/ceo", response_class=HTMLResponse)
async def ceo_dashboard(request: Request):
return templates.TemplateResponse(request, "dashboard/ceo.html")
@router.get("/tickets", response_class=HTMLResponse)
async def ticket_list(request: Request):
return templates.TemplateResponse(request, "tickets/list.html")
@router.get("/tickets/new", response_class=HTMLResponse)
async def create_ticket_page(request: Request):
return templates.TemplateResponse(request, "tickets/new.html")
@router.get("/tickets/{ticket_id}", response_class=HTMLResponse)
async def ticket_detail_page(request: Request, ticket_id: int):
return templates.TemplateResponse(request, "tickets/detail.html", context={"ticket_id": ticket_id})