export let puedeReproducirAudio = false;

document.addEventListener('click', () => {
  puedeReproducirAudio = true;
});

export function lanzarNotificacion(mensaje) {
  if (Notification.permission === "granted") {
    const noti = new Notification(mensaje, {
      icon: '../assets/img/notificaciones.png',
      body: 'Haz clic para revisar el nuevo caso.',
    });

    noti.onclick = function () {
      window.focus();
      window.location.href = "../../contabilidad/altas.php";
    };
  }
}

export function reproducirSonido() {
  if (!puedeReproducirAudio) return;
  const audio = new Audio('../assets/sound/sweetaler.wav');
  audio.play();
}

export function iniciarMonitorNotificaciones() {
  let totalDetectadosPrevios = sessionStorage.getItem("pendientesPrevios");
  totalDetectadosPrevios = totalDetectadosPrevios ? parseInt(totalDetectadosPrevios) : null;

  setInterval(() => {
    fetch("../../backend/contabilidad/get_movimientos_contabilidad.php")
      .then(res => res.json())
      .then(data => {
        if (!data.success) return;

        const movimientosNuevos = data.data.filter(m => m.enteradoContabilidad == 0);
        const totalActual = movimientosNuevos.length;

        if (totalDetectadosPrevios !== null && totalActual > totalDetectadosPrevios) {
          lanzarNotificacion("Nuevo caso asignado a contabilidad");
          reproducirSonido();
        }

        sessionStorage.setItem("pendientesPrevios", totalActual);
        totalDetectadosPrevios = totalActual;
      });
  }, 30000);
}
