| 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() | |
| 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)) | |