from __future__ import annotations from fastapi import APIRouter, Depends, HTTPException from sqlmodel import Session from ..db.session import get_session from ..services import safety_center_service router = APIRouter(prefix='/api/safety') @router.get('/dashboard') def dashboard(refresh: bool = False, session: Session = Depends(get_session)): return safety_center_service.get_dashboard(session, force_refresh=refresh) @router.get('/summary') def summary(session: Session = Depends(get_session)): return safety_center_service.get_summary(session) @router.get('/sections') def sections(session: Session = Depends(get_session)): return safety_center_service.get_sections(session) @router.get('/findings') def findings(session: Session = Depends(get_session)): return safety_center_service.get_findings(session) @router.get('/recommendations') def recommendations(session: Session = Depends(get_session)): return safety_center_service.get_recommendations(session) @router.get('/score-breakdown') def score_breakdown(session: Session = Depends(get_session)): return safety_center_service.get_score_breakdown(session) @router.post('/refresh') def refresh(session: Session = Depends(get_session)): return safety_center_service.refresh(session) @router.post('/findings/{finding_id}/acknowledge') def acknowledge_finding(finding_id: str, session: Session = Depends(get_session)): return safety_center_service.acknowledge_finding(session, finding_id) @router.post('/findings/{finding_id}/dismiss') def dismiss_finding(finding_id: str, session: Session = Depends(get_session)): return safety_center_service.dismiss_finding(session, finding_id) @router.post('/recommendations/{recommendation_id}/dismiss') def dismiss_recommendation(recommendation_id: str, session: Session = Depends(get_session)): return safety_center_service.dismiss_recommendation(session, recommendation_id) @router.post('/recommendations/{recommendation_id}/create-remediation-plan') def create_remediation_plan(recommendation_id: str, session: Session = Depends(get_session)): result = safety_center_service.create_remediation_plan(session, recommendation_id) if result.get('status') == 'not_found': raise HTTPException(status_code=404, detail='recommendation_not_found') return result