from fastapi import APIRouter, Depends, HTTPException from sqlalchemy.orm import Session from backend.db.session import SessionLocal from backend.core.cross_universe_analysis import CrossUniverseAnalyzer from backend.api.auth import get_api_key from backend.core.logging_config import get_logger router = APIRouter() logger = get_logger("analysis_routes") def get_db(): db = SessionLocal() try: yield db finally: db.close() @router.post("/analysis/cross_universe") def cross_universe_analysis(universe_ids: list[int], db: Session = Depends(get_db), api_key: str = Depends(get_api_key)): try: analyzer = CrossUniverseAnalyzer(db) result = analyzer.analyze(universe_ids) logger.info(f"Cross-universe analysis: universes={universe_ids}, result={result}") return result except Exception as e: logger.error(f"Analysis error: {e}") raise HTTPException(status_code=500, detail=str(e))