/**
 * ================================================================
 *  GPS JOB - Cron Job del simulador
 *
 *  Se registra al iniciar el servidor y corre automáticamente.
 *  Por defecto cada 1 minuto. Combinado con TIME_MULTIPLIER=60
 *  en el .env, 1 minuto real = 1 hora simulada, suficiente para
 *  ver el camión avanzar durante una demo en vivo.
 * ================================================================
 */

const cron = require('node-cron');
const { ejecutarSimulacion } = require('../services/simulator.service');

function registrarGpsJob() {
  // '*/1 * * * *' = cada 1 minuto
  // Cambiar a '*/30 * * * * *' para cada 30 segundos (si el paquete lo soporta)
  const SCHEDULE = process.env.CRON_SCHEDULE || '*/1 * * * *';

  const job = cron.schedule(SCHEDULE, async () => {
    console.log(`\n⏱️  [${new Date().toLocaleTimeString()}] Ejecutando simulador GPS...`);
    await ejecutarSimulacion();
  });

  console.log(`✅ Simulador GPS registrado (schedule: "${SCHEDULE}", x${process.env.TIME_MULTIPLIER || 60} velocidad)`);
  return job;
}

module.exports = { registrarGpsJob };
