import logging from google.adk.sessions import DatabaseSessionService from app.config import settings logger = logging.getLogger(__name__) # Global service instance _session_service: DatabaseSessionService | None = None async def init_session_service() -> None: """Initialize the database session service on application startup.""" global _session_service if _session_service is None: logger.info(f"Initializing DatabaseSessionService with {settings.DATABASE_URL}...") _session_service = DatabaseSessionService(db_url=settings.DATABASE_URL) logger.info("DatabaseSessionService initialized successfully") async def close_session_service() -> None: """Cleanup session service resources on application shutdown.""" global _session_service if _session_service: _session_service = None logger.info("DatabaseSessionService closed") def get_session_service() -> DatabaseSessionService: """ Get the session service instance for dependency injection. Raises: RuntimeError: If service is not initialized. """ if _session_service is None: raise RuntimeError("Session service not initialized. Application may not have started properly.") return _session_service