from fastapi import APIRouter, HTTPException, status from app.schemas.analysis import ( AnalysisSessionCreateRequest, AnalysisSessionListResponse, AnalysisSessionResponse, AnalysisSessionSnapshot, ) from app.services.analysis_service import AnalysisService router = APIRouter() service = AnalysisService() @router.post( "/sessions", response_model=AnalysisSessionResponse, status_code=status.HTTP_201_CREATED, ) def create_analysis_session( payload: AnalysisSessionCreateRequest, ) -> AnalysisSessionResponse: return service.create_session(payload) @router.get("/sessions", response_model=AnalysisSessionListResponse) def list_analysis_sessions() -> AnalysisSessionListResponse: return service.list_sessions() @router.get("/sessions/{session_id}", response_model=AnalysisSessionSnapshot) def get_analysis_session(session_id: str) -> AnalysisSessionSnapshot: snapshot = service.get_session(session_id) if snapshot is None: raise HTTPException( status_code=status.HTTP_404_NOT_FOUND, detail=f"Analysis session '{session_id}' was not found.", ) return snapshot