from fastapi import APIRouter
from common_logging import get_logger

from app.services.llm.service_status_manager import ServiceMode, get_status_manager

logger = get_logger(__name__)
router = APIRouter()


@router.get("/status", summary="Get LLM service status")
async def get_service_status():
    logger.info("Fetching LLM service status")
    manager = get_status_manager()
    mode = manager.get_current_mode()
    inference_available = mode == ServiceMode.INFERENCE
    response: dict = {"mode": mode.value, "inference_available": inference_available}
    if mode == ServiceMode.TRAINING:
        training_info = manager.get_training_info()
        if training_info is not None:
            response["training_info"] = training_info
    return response
