// Modelo/Archivos_JS/Notifi_Agregar_Galonera.js

// --- Guardia: evita doble ejecución del notificador ---
if (window.__NOTIFI_GALONERA_INIT__) {
  // Si este archivo se incluyera dos veces por error, salimos
  console.warn('Notifi_Agregar_Galonera: ejecución evitada (ya inicializado)');
} else {
  window.__NOTIFI_GALONERA_INIT__ = true;

  (function () {
    // Pequeña ayuda: recargar DT solo cuando ya esté listo
    function recargarDTGalonerasSeguro() {
      if (window.dtGaloneras && window.dtGaloneras.ajax) {
        try { window.dtGaloneras.ajax.reload(null, false); } catch (e) {}
      } else {
        // Si aún no se creó, espera al primer init y recarga una sola vez
        $(document).one('init.dt', '#tablaGaloneras', function () {
          if (window.dtGaloneras && window.dtGaloneras.ajax) {
            try { window.dtGaloneras.ajax.reload(null, false); } catch (e) {}
          }
        });
      }
    }

    // Anti-doble-toast en la misma carga (por si el script corre dos veces antes de borrar la sesión)
    let toastMostrado = false;

    $.ajax({
      type: "GET",
      url: "../../Controlador/Utilidades/Notifi_Agregar_Galonera.php",
      dataType: "json",
      cache: false
    })
    .done(function (response) {
      // Aceptamos varias claves
      const galoneraCodigo = response && (response.galonera || response.codigo || response.nombre);
      if (!galoneraCodigo) {
        if (response && response.error) {
          console.log("-> Mensaje (Notifi_Agregar_Galonera):", response.error);
        }
        return;
      }

      // Evita mostrar doble si hay doble ejecución simultánea
      if (toastMostrado || window.__NOTIFI_GALONERA_TOAST_SHOWN__) return;
      toastMostrado = true;
      window.__NOTIFI_GALONERA_TOAST_SHOWN__ = true;

      Swal.fire({
        title: 'Galonera ' + galoneraCodigo,
        text: '¡Registrada correctamente!',
        icon: 'success',
        showConfirmButton: false,
        timer: 1800
      });

      console.log("Galonera Registrada:: " + galoneraCodigo);

      // Eliminar la sesión para no repetir notificación
      $.ajax({
        type: "GET",
        url: "../../Controlador/Utilidades/DELATE_Notifi_Agregar_Galonera.php",
        dataType: "json",
        cache: false
      })
      .done(function (resp2) {
        const msg = (resp2 && (resp2.sesionGalonera || resp2.id_delate || resp2.ok)) || 'OK';
        console.log("-> Mensaje Eliminación Sesión:", msg);
      })
      .fail(function (xhr, status, error) {
        console.error("-> Error al eliminar sesión:", error);
      })
      .always(function () {
        // Cuando ya pedimos eliminar la sesión, refrescamos la tabla de forma segura
        recargarDTGalonerasSeguro();
      });
    })
    .fail(function (xhr, status, error) {
      // Si el getter falla, no forzamos reload para no interferir con la init
      Swal.fire({
        title: 'Error',
        text: 'Error al obtener datos de la sesión de la galonera.',
        icon: 'error',
        showConfirmButton: true
      });
      console.error("-> Error AJAX (Notifi_Agregar_Galonera):", error);
    });
  })();
}
