""" Session API endpoints for the AI Voice Bot server. This module contains session management endpoints. """ from typing import TYPE_CHECKING from fastapi import APIRouter # Import shared models import sys import os sys.path.append(os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(os.path.abspath(__file__)))))) from shared.models import SessionResponse, HealthResponse from logger import logger if TYPE_CHECKING: from ..core.session_manager import SessionManager class SessionAPI: """Session API endpoint handlers""" def __init__(self, session_manager: "SessionManager", public_url: str = "/"): self.session_manager = session_manager self.router = APIRouter(prefix=f"{public_url}api") self._register_routes() def _register_routes(self): """Register all session routes""" @self.router.get("/health", response_model=HealthResponse) def health(): return HealthResponse(status="ok") @self.router.get("/session", response_model=SessionResponse) def get_session(): # Create new session only session = self.session_manager.create_session() logger.info(f"Created new session: {session.getName()}") return SessionResponse( id=session.id, name=session.name or "", lobbies=[], # New sessions start with no lobbies protected=False, has_media=session.has_media, bot_run_id=session.bot_run_id, bot_provider_id=session.bot_provider_id, bot_instance_id=session.bot_instance_id, )