""" Dashboard web interface routes. """ from fastapi import APIRouter, Request, Depends from fastapi.templating import Jinja2Templates from fastapi.responses import HTMLResponse from sqlalchemy.ext.asyncio import AsyncSession from app.database.connection import get_db dashboard_router = APIRouter() templates = Jinja2Templates(directory="app/dashboard/templates") @dashboard_router.get("/dashboard", response_class=HTMLResponse) async def dashboard_home(request: Request, db: AsyncSession = Depends(get_db)): """Main dashboard page.""" return templates.TemplateResponse("dashboard.html", { "request": request, "title": "Claude Code Project Tracker" }) @dashboard_router.get("/dashboard/projects", response_class=HTMLResponse) async def dashboard_projects(request: Request, db: AsyncSession = Depends(get_db)): """Projects overview page.""" return templates.TemplateResponse("projects.html", { "request": request, "title": "Projects - Claude Code Tracker" }) @dashboard_router.get("/dashboard/analytics", response_class=HTMLResponse) async def dashboard_analytics(request: Request, db: AsyncSession = Depends(get_db)): """Analytics and insights page.""" return templates.TemplateResponse("analytics.html", { "request": request, "title": "Analytics - Claude Code Tracker" }) @dashboard_router.get("/dashboard/conversations", response_class=HTMLResponse) async def dashboard_conversations(request: Request, db: AsyncSession = Depends(get_db)): """Conversation search and history page.""" return templates.TemplateResponse("conversations.html", { "request": request, "title": "Conversations - Claude Code Tracker" })