$(document).ready(function () {
    // Función optimizada para cargar alertas (Lógica idéntica al módulo que funciona)
    function loadInventoryAlerts() {
        var totalAlerts = 0;
        var htmlContent = "";

        // 1. Obtener Stock Bajo
        $.post("../ajax/inventario.php?op=listarStockBajo", function (data) {
            try {
                // Intentamos parsear manualmente como en inventario.js
                var stockData = JSON.parse(data);

                if (stockData && stockData.length > 0) {
                    totalAlerts += stockData.length;
                    stockData.forEach(function (item) {
                        htmlContent += '<li><a href="inventario.php" title="Stock Bajo"><i class="fa fa-battery-quarter text-red"></i> ' +
                            item[1] + ' <small class="pull-right">' + item[5] + '</small></a></li>';
                    });
                }

                // 2. Obtener Próximos a Vencer (Anidado para asegurar orden y actualizar UI al final)
                $.post("../ajax/inventario.php?op=listarProximosVencer", function (dataVencer) {
                    try {
                        var vencerData = JSON.parse(dataVencer);

                        if (vencerData && vencerData.length > 0) {
                            totalAlerts += vencerData.length;
                            vencerData.forEach(function (item) {
                                htmlContent += '<li><a href="inventario.php" title="Por Caducar"><i class="fa fa-clock-o text-yellow"></i> ' +
                                    item[1] + ' <small class="pull-right">' + item[4] + '</small></a></li>';
                            });
                        }

                        // 3. Actualizar UI
                        if (totalAlerts > 0) {
                            $("#alert-count").text(totalAlerts);
                            $("#alert-header").text("Tienes " + totalAlerts + " alertas");
                            $("#alert-list").html(htmlContent);
                        } else {
                            $("#alert-count").text("");
                            $("#alert-header").text("Inventario OK");
                            $("#alert-list").html('<li><a href="#"><i class="fa fa-check text-green"></i> Todo correcto</a></li>');
                        }

                    } catch (e) {
                        console.error("Error parseando vencimientos:", e);
                    }
                });

            } catch (e) {
                console.error("Error parseando stock bajo:", e);
                console.log("Data recibida:", data); // Para depuración
            }
        }).fail(function () {
            console.error("Fallo en petición AJAX de inventario");
            $("#alert-header").text("Error Conexión");
            $("#alert-list").html('<li><a href="#"><i class="fa fa-exclamation-triangle text-red"></i> Error de red</a></li>');
        });
    }

    // Ejecutar inicial
    loadInventoryAlerts();
    loadReferralNotifications();

    // Recargar cada 60 seg
    setInterval(function() {
        loadInventoryAlerts();
        loadReferralNotifications();
    }, 60000);

    function loadReferralNotifications() {
        $.post("../ajax/derivacion.php?op=listar_recibidas", function(data) {
            try {
                var referrals = JSON.parse(data);
                var count = referrals.length;
                var html = "";

                if (count > 0) {
                    $("#notif-count").text(count);
                    $("#side-notif-count").text(count);
                    $("#notif-header").text("Tienes " + count + " derivaciones pendientes");
                    
                    referrals.forEach(function(r) {
                        var color = "text-aqua";
                        if(r.prioridad == 'alta') color = "text-red";
                        if(r.prioridad == 'media') color = "text-yellow";

                        html += '<li>' +
                            '<a href="plan.php" title="Derivación de ' + r.dr_origen + '">' +
                            '<i class="fa fa-exchange ' + color + '"></i> ' +
                            '<strong>' + r.paciente + ' ' + r.apellido + '</strong><br>' +
                            '<small>Ref: ' + r.dr_origen + '</small>' +
                            '</a></li>';
                    });
                    $("#notif-list").html(html);
                } else {
                    $("#notif-count").text("");
                    $("#notif-header").text("No hay derivaciones");
                    $("#notif-list").html('<li><a href="#"><i class="fa fa-check text-green"></i> Sin pendientes</a></li>');
                }
            } catch(e) {
                console.error("Error en derivaciones:", e);
            }
        });
    }
});
