Spaces:
Running
Running
| 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 | |
| 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} | |
| 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"} | |
| async def mute_coach(_=Depends(verify_token)): | |
| await mute_coaching_immediately() | |
| return {"status": "ok", "message": "Coaching muted"} | |