from uuid import uuid4 from fastapi import APIRouter, Depends, Request, Response from app.core.security import get_current_user from app.models.user import User from app.schemas.ai import ( AIProviderStatusResponse, SituationalAnalysisRequest, SituationalAnalysisResponse, ) from app.services.ai_client import AIProviderClient, get_ai_provider_client router = APIRouter() @router.get("/provider/status", response_model=AIProviderStatusResponse) async def get_ai_provider_status( request: Request, response: Response, current_user: User = Depends(get_current_user), provider_client: AIProviderClient = Depends(get_ai_provider_client), ): request_id = request.headers.get("X-Request-ID") or str(uuid4()) response.headers["X-Request-ID"] = request_id return await provider_client.get_status(request_id=request_id) @router.post("/situational-awareness/analyze", response_model=SituationalAnalysisResponse) async def analyze_situational_awareness( payload: SituationalAnalysisRequest, request: Request, response: Response, current_user: User = Depends(get_current_user), provider_client: AIProviderClient = Depends(get_ai_provider_client), ): request_id = request.headers.get("X-Request-ID") or str(uuid4()) response.headers["X-Request-ID"] = request_id return await provider_client.analyze(payload, request_id=request_id)