import { Router } from "express";
import { env } from "../env.js";
import { healthRouter } from "./health.routes.js";
import { authRouter } from "./auth.routes.js";
import { studentsRouter } from "./students.routes.js";
import { kitsRouter } from "./kits.routes.js";
import { inventoryRouter } from "./inventory.routes.js";
import { bootcampRouter } from "./bootcamp.routes.js";
import { registroRouter } from "./registro.routes.js";
import { dronesRouter } from "../modules/drones/drones.routes.js";
import { todoterrenoRouter } from "../modules/todoterreno/todoterreno.routes.js";
import { robofutRouter } from "../modules/robofut/robofut.routes.js";
import { stemsrRouter } from "../modules/stemsr/stemsr.routes.js";

export const apiRouter = Router();

apiRouter.use("/health", healthRouter);
apiRouter.use("/auth", authRouter);
apiRouter.use("/students", studentsRouter);
apiRouter.use("/kits", kitsRouter);
apiRouter.use("/inventory", inventoryRouter);
apiRouter.use("/bootcamps", bootcampRouter);
apiRouter.use("/registro", registroRouter);

// Módulo opcional de Drones. Se activa con ENABLE_DRONES_MODULE=true en .env.
// Mientras esté desactivado, /api/drones/* devuelve 404.
if (env.ENABLE_DRONES_MODULE) {
  apiRouter.use("/drones", dronesRouter);
  console.log("[drones] módulo habilitado en /api/drones");
}

// Módulo opcional de Todoterreno. Se activa con ENABLE_TODOTERRENO_MODULE=true en .env.
if (env.ENABLE_TODOTERRENO_MODULE) {
  apiRouter.use("/todoterreno", todoterrenoRouter);
  console.log("[todoterreno] módulo habilitado en /api/todoterreno");
}

// Módulo opcional de RoboFUT. Se activa con ENABLE_ROBOFUT_MODULE=true.
if (env.ENABLE_ROBOFUT_MODULE) {
  apiRouter.use("/robofut", robofutRouter);
  console.log("[robofut] módulo habilitado en /api/robofut");
}

// Módulo opcional de STEM SR. Se activa con ENABLE_STEMSR_MODULE=true.
if (env.ENABLE_STEMSR_MODULE) {
  apiRouter.use("/stemsr", stemsrRouter);
  console.log("[stemsr] módulo habilitado en /api/stemsr");
}
