from fastapi import APIRouter

from app.services.training_platform.factory import PLATFORMS, get_training_platform

from common_logging import get_logger

logger = get_logger(__name__)

router = APIRouter(tags=['training_platforms'])

@router.get('/')
def list_training_platforms():
    return [{'id': platform_id, 'name': platform_id} for platform_id in PLATFORMS]

@router.get('/{platform_id}/status')
def get_platform_status(platform_id: str):
    try:
        platform = get_training_platform(platform_id)
    except ValueError as exc:
        from fastapi import HTTPException
        raise HTTPException(status_code=404, detail=str(exc)) from None
    try:
        status = platform.get_platform_status()
    except Exception:
        logger.warning("Failed to get platform status", platform_id=platform_id)
        status = {'available': False, 'error': 'Could not reach platform'}
    return {'platform_id': platform_id, 'status': status}
