import { Router } from "express";
import { TrackingController } from "./controller.js";
import { AuthMiddleware } from "../middlewares/auth.middleware.js";

export class TrackingRoutes {
  static controllerInstance: TrackingController | null = null;

  static get routes(): Router {
    const router = Router();
    const controller = new TrackingController();
    TrackingRoutes.controllerInstance = controller;

    // Interno: simulador o admin. Sin auth para que el demo sea simple.
    router.post("/gps-update", controller.gpsUpdate);

    // Visión de túnel: SOLO con JWT, SOLO datos del usuario logueado.
    router.get("/status", AuthMiddleware.validate, controller.myStatus);

    // Reset del estado en memoria (solo para repetir la demo).
    router.post("/reset-demo", controller.resetDemo);

    return router;
  }
}
