"""Performance monitoring endpoints."""

import logging
from fastapi import APIRouter, HTTPException, Query
from fastapi.responses import JSONResponse

from src.scrapers.multi_engine_manager import multi_engine_manager

logger = logging.getLogger(__name__)
router = APIRouter()


@router.get("/stats")
async def get_performance_stats():
    """Get performance statistics."""
    try:
        stats = multi_engine_manager.get_performance_stats()
        return JSONResponse(content=stats)
    except Exception as e:
        logger.error(f"Error getting performance stats: {e}")
        raise HTTPException(status_code=500, detail=str(e))


@router.post("/reset")
async def reset_performance_stats():
    """Reset performance statistics."""
    try:
        multi_engine_manager.reset_stats()
        return JSONResponse(content={"message": "Performance statistics reset"})
    except Exception as e:
        logger.error(f"Error resetting performance stats: {e}")
        raise HTTPException(status_code=500, detail=str(e))


@router.get("/test")
async def test_engine_performance(
    test_query: str = Query("test search", description="Query to test with")
):
    """Test performance of all engines."""
    try:
        results = multi_engine_manager.test_engine_performance(test_query)
        return JSONResponse(content={
            "test_query": test_query,
            "results": results
        })
    except Exception as e:
        logger.error(f"Error testing engine performance: {e}")
        raise HTTPException(status_code=500, detail=str(e))
