"""Operational metrics endpoints — MTTD, MTTR, Detection Efficacy, and more. Provides operational KPIs for security teams with trend analysis and team-level breakdowns. """ from fastapi import APIRouter, Depends, Query from sqlalchemy.orm import Session from app.database import get_db from app.dependencies.auth import get_current_user from app.models.user import User from app.services.operational_metrics_service import ( get_all_operational_metrics, get_operational_trend, get_metrics_by_team, ) router = APIRouter(prefix="/metrics/operational", tags=["operational-metrics"]) # ── GET /metrics/operational ────────────────────────────────────────── @router.get("") def operational_metrics( db: Session = Depends(get_db), current_user: User = Depends(get_current_user), ): """Get all operational metrics (MTTD, MTTR, Detection Efficacy, etc.).""" return get_all_operational_metrics(db) # ── GET /metrics/operational/trend ──────────────────────────────────── @router.get("/trend") def operational_trend( period: str = Query("90d", pattern="^(30d|90d|1y)$"), db: Session = Depends(get_db), current_user: User = Depends(get_current_user), ): """Get weekly trend data for operational metrics.""" return get_operational_trend(db, period) # ── GET /metrics/operational/by-team ────────────────────────────────── @router.get("/by-team") def metrics_by_team( db: Session = Depends(get_db), current_user: User = Depends(get_current_user), ): """Get metrics broken down by Red Team vs Blue Team.""" return get_metrics_by_team(db)