// Modelo/Archivos_JS/Notifi_Eliminar_Galonera.js

// Ejecutar una sola vez (evita dobles por import, BFCache, PJAX, etc.)
(function () {
  if (window.__GALONERA_DELETE_NOTIFY_RAN__) return;
  window.__GALONERA_DELETE_NOTIFY_RAN__ = true;

  // Helper: recargar tabla si existe
  function recargarTablaGaloneras() {
    if (window.dtGaloneras && window.dtGaloneras.ajax) {
      try {
        // NO usar clear() para evitar parpadeos/duplicados; DataTables maneja el diff
        window.dtGaloneras.ajax.reload(null, false); // conserva página actual
      } catch (e) {
        console.warn("DT reload (delete) warning:", e);
      }
    }
  }

  // 1) Verificar si hay una eliminación pendiente en sesión
  $.getJSON("../../Controlador/Utilidades/Notifi_Eliminar_Galonera.php")
    .done(function (response) {
      // El backend usa "delate"; por si acaso aceptamos alternativas comunes
      var idDelate =
        response && (response.delate || response.delete || response.id || response.codigo);

      if (!idDelate) {
        // No hay dato de sesión: nada que notificar
        if (response && response.error) {
          console.log("-> Notifi_Eliminar_Galonera.php:", response.error);
        } else {
          console.log("-> Notifi_Eliminar_Galonera.php: Sin dato de sesión");
        }
        return;
      }

      // 2) Mostrar notificación de éxito
      Swal.fire({
        title: "Galonera N°: " + idDelate,
        text: "¡Eliminada correctamente!",
        icon: "success",
        showConfirmButton: false,
        timer: 1800
      });

      console.log("Galonera eliminada (ID/Código):", idDelate);

      // 3) Limpiar la sesión para evitar repetir el toast al recargar o volver con el back
      $.getJSON("../../Controlador/Utilidades/POST_Eliminar_SessionID_Galonera.php")
        .done(function (r2) {
          if (r2 && (r2.id_delate || r2.ok)) {
            console.log("-> DelateID Galonera limpiado:", r2.id_delate || r2.ok);
          }
        })
        .fail(function (_, __, err) {
          console.error("-> Error limpiando sesión (POST_Eliminar_SessionID_Galonera.php):", err);
        })
        .always(function () {
          // 4) Refrescar DataTable si estamos en la vista de gestión
          recargarTablaGaloneras();
          // (Opcional) si manejas tarjetas móviles con una función global, la puedes invocar aquí:
          // if (typeof window.renderGalonerasCards === "function") window.renderGalonerasCards();
        });
    })
    .fail(function (_, __, error) {
      Swal.fire({
        title: "Error",
        text: "Hubo un error al obtener la sesión de la galonera.",
        icon: "error",
        showConfirmButton: true
      });
      console.error("-> AJAX (Notifi_Eliminar_Galonera.php):", error);
    });
})();
