from fastapi import APIRouter, HTTPException from services.database import ( get_cycle_reports, get_cycle_report, get_latest_cycle_report, get_trade_assessments, get_latest_trade_assessments, ) router = APIRouter(prefix="/api/reports", tags=["reports"]) @router.get("/cycle/latest") def cycle_report_latest(): """Most recent generated cycle report.""" return {"report": get_latest_cycle_report()} @router.get("/cycle/list") def cycle_report_list(limit: int = 20): """List of cycle report summaries (no full JSON).""" return {"reports": get_cycle_reports(limit)} @router.get("/cycle/{run_id}") def cycle_report_detail(run_id: str): """Full cycle report for a specific run_id.""" report = get_cycle_report(run_id) if not report: raise HTTPException(404, "Rapport de cycle introuvable") return report @router.get("/assessments/latest") def assessments_latest(limit: int = 20): """Latest options technical assessments (one per trade, for Journal badges).""" return {"assessments": get_latest_trade_assessments(limit)} @router.get("/assessments/{run_id}") def assessments_by_run(run_id: str): """Options technical assessments for a specific cycle run.""" return {"assessments": get_trade_assessments(run_id)}