from fastapi import APIRouter, Depends from pydantic import BaseModel from backend.security.auth import verify_token from backend.gaming.session_manager import GamingSession, session_registry from backend.gaming.voice_interrupt import mute_coaching_immediately router = APIRouter(prefix="/gaming", tags=["gaming-coach"]) class StartSessionRequest(BaseModel): game_id: str class EndSessionRequest(BaseModel): session_id: str @router.post("/session/start") async def start_session(request: StartSessionRequest, _=Depends(verify_token)): session = GamingSession() await session.start_session(request.game_id) session_registry[session.id] = session return {"status": "ok", "session_id": session.id} @router.post("/session/end") async def end_session(request: EndSessionRequest, _=Depends(verify_token)): session = session_registry.get(request.session_id) if session: await session.end_session() del session_registry[request.session_id] return {"status": "ok"} return {"status": "error", "message": "Session not found"} @router.post("/coach/mute") async def mute_coach(_=Depends(verify_token)): await mute_coaching_immediately() return {"status": "ok", "message": "Coaching muted"}