"""
config/urls.py
==============
Router principal de la API.
Convención de URLs:
  /api/v1/auth/         → Autenticación (login, refresh, logout)
  /api/v1/users/        → Gestión de usuarios y perfiles
  /api/v1/academic/     → Asignaturas, secciones, inscripciones
  /api/v1/questions/    → Banco de preguntas
  /api/v1/sessions/     → Sesiones en vivo
  /api/v1/gamification/ → Puntos, insignias, fichas
  /api/v1/evaluation/   → Notas y actas
  /api/v1/analytics/    → Analítica pedagógica
  /api/v1/security/     → Auditoría (solo admin)
  /admin/               → Django Admin
"""

from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static

# ─── Versión de la API (facilita futuros breaking changes) ───
API_PREFIX = 'api/v1/'

urlpatterns = [
    # Admin de Django — solo accesible con credenciales de superusuario
    path('admin/', admin.site.urls),

    # ── Autenticación ──
    path(f'{API_PREFIX}auth/', include('users.urls.auth')),

    # ── Usuarios y perfiles ──
    path(f'{API_PREFIX}users/', include('users.urls.users')),

    # ── Estructura académica ──
    path(f'{API_PREFIX}academic/', include('academic.urls')),

    # ── Banco de preguntas ──
    path(f'{API_PREFIX}questions/', include('questions.urls')),

    # ── Sesiones en vivo ──
    path(f'{API_PREFIX}sessions/', include('sessions.urls')),

    # ── Gamificación ──
    path(f'{API_PREFIX}gamification/', include('gamification.urls')),

    # ── Evaluación ──
    path(f'{API_PREFIX}evaluation/', include('evaluation.urls')),

    # ── Analítica ──
    path(f'{API_PREFIX}analytics/', include('analytics.urls')),

    # ── Auditoría (solo admin) ──
    path(f'{API_PREFIX}security/', include('security.urls')),
]

# En desarrollo, servir archivos media desde Django
if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
