"""Dashboard endpoints.""" from typing import Annotated, Literal from fastapi import APIRouter, Depends, Query from app.api.dependencies import DatabaseSession, require_permission from app.models.entities import UserAccount from app.schemas.common import ApiResponse from app.schemas.dashboard import DashboardData from app.services.dashboard import DashboardService router = APIRouter(prefix="/dashboard", tags=["dashboard"]) @router.get("", response_model=ApiResponse[DashboardData]) async def get_dashboard( session: DatabaseSession, _current_user: Annotated[UserAccount, Depends(require_permission("risk.assess"))], year: Literal["all", "2024", "2025", "2026"] = Query("all"), ) -> ApiResponse[DashboardData]: return ApiResponse(data=await DashboardService(session).overview(year))