# ==============================================
# Breakpilot Drive - Game API (barrel re-export)
# ==============================================
# This module was split into:
#   - game_models.py          (Pydantic models, difficulty mapping, sample questions)
#   - game_routes.py           (Core game routes: level, quiz, session, leaderboard)
#   - game_extended_routes.py  (Phase 5: achievements, progress, parent, class)
#
# The `router` object is assembled here by including all sub-routers.
# Importers that did `from game.api import router` continue to work.

from fastapi import APIRouter

from .routes import router as _core_router
from .session_routes import router as _session_router
from .extended_routes import router as _extended_router

# Re-export models for any direct importers
from .game_models import (  # noqa: F401
    LearningLevel,
    GameDifficulty,
    QuizQuestion,
    QuizAnswer,
    GameSession,
    SessionResponse,
    DIFFICULTY_MAPPING,
    SAMPLE_QUESTIONS,
)

# Re-export helpers/state for any direct importers
from .routes import (  # noqa: F401
    get_optional_current_user,
    get_user_id_from_auth,
    get_game_database,
    _sessions,
    _user_levels,
    USE_DATABASE,
    REQUIRE_AUTH,
)

# Assemble the combined router.
# Both sub-routers use prefix="/api/game", so include without extra prefix.
router = APIRouter()
router.include_router(_core_router)
router.include_router(_session_router)
router.include_router(_extended_router)
