2026-09-04 10:20:40 +08:00

23 lines
808 B
Python

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