// Modelo/Archivos_JS/Notifi_Editar_Galonera.js

(function () {
  // Evita doble ejecución si el archivo se incluye por error dos veces
  if (window.__NOTI_EDIT_GALONERA_RAN__) return;
  window.__NOTI_EDIT_GALONERA_RAN__ = true;

  // Pequeño helper: recarga segura del DT si existe
  function safeReloadDT() {
    if (window.dtGaloneras && window.dtGaloneras.ajax) {
      try { window.dtGaloneras.clear(); } catch (e) {}
      try { window.dtGaloneras.ajax.reload(null, false); } catch (e) {}
      return true;
    }
    return false;
  }

  // Espera a que el DT exista (máx 10 intentos)
  function reloadWhenReady(attempts = 10) {
    if (safeReloadDT()) return;
    if (attempts <= 0) return;
    setTimeout(() => reloadWhenReady(attempts - 1), 200);
  }

  // 1) Consultar la sesión para ver si hay notificación
  $.ajax({
    type: "GET",
    url: "../../Controlador/Utilidades/Notifi_Editar_Galonera.php",
    dataType: "json",
    cache: false
  })
  .done(function (response) {
    if (response && Object.prototype.hasOwnProperty.call(response, "update")) {
      var galoneraUpdate = response.update; // ID o CÓDIGO, según tu PHP

      Swal.fire({
        title: "Galonera " + galoneraUpdate,
        text: "¡Editada correctamente!",
        icon: "success",
        showConfirmButton: false,
        timer: 1800
      });

      // 2) Borrar la sesión para que no se repita
      $.ajax({
        type: "GET",
        url: "../../Controlador/Utilidades/POST_Eliminar_GaloneraUpdate.php",
        dataType: "json",
        cache: false
      })
      .always(function () {
        // 3) Recargar DataTable de forma segura (sin duplicar)
        reloadWhenReady();
      });
    } else {
      // No hay sesión -> no hacemos nada
      // console.log(response && response.error ? response.error : "Sin dato de sesión (update).");
    }
  })
  .fail(function (xhr, status, error) {
    // Si quieres, deja solo el log para no mostrar alertas innecesarias
    console.error("Notifi_Editar_Galonera -> error AJAX:", error || status);
  });
})();
