
$(".dt-reportes").DataTable({
    "dom": 'Bfrtip', // Define la posición de los botones
    "buttons": [
        {
            extend: 'excelHtml5',
            text: '<i class="fas fa-file-excel"></i> Excel',
            className: 'btn-success',
            title: 'Reporte_Atenciones_Emergencia'
        },
        {
            extend: 'pdfHtml5',
            text: '<i class="fas fa-file-pdf"></i> PDF',
            className: 'btn-danger',
            title: 'Reporte_Atenciones_Emergencia'
        },
        {
            extend: 'print',
            text: '<i class="fas fa-print"></i> Imprimir',
            className: 'btn-info'
        }
    ],
    "language": {
        "url": "//cdn.datatables.net/plug-ins/1.10.20/i18n/Spanish.json"
    }
});

$('#daterange-btn').daterangepicker(
  {
    ranges   : {
      'Hoy'       : [moment(), moment()],
      'Ayer'      : [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
      'Últimos 7 Días' : [moment().subtract(6, 'days'), moment()],
      'Este Mes'  : [moment().startOf('month'), moment().endOf('month')],
      'Último Mes'  : [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]
    },
    startDate: moment().subtract(29, 'days'),
    endDate  : moment()
  },
  function (start, end) {
    $('#daterange-btn span').html(start.format('MMMM D, YYYY') + ' - ' + end.format('MMMM D, YYYY'));

    var fechaInicial = start.format('YYYY-MM-DD');
    var fechaFinal = end.format('YYYY-MM-DD');

    // Redireccionamos con los parámetros de fecha
    window.location = "index.php?ruta=reportes-emergencia&fechaInicial="+fechaInicial+"&fechaFinal="+fechaFinal;
  }
)

$(".dt-reportes").on("click", ".btnHistorialPaciente", function(){

    var idPaciente = $(this).attr("idpaciente");
    var nombreP = $(this).attr("nombrepaciente");

    // Seteamos el título
    $("#nombrePacienteModal").html('Historial Clínico: ' + nombreP);
    
    // [RF05] Limpiamos cualquier botón de DNI previo si existiera
    $(".btn-dni-dinamico").remove(); 

    $("#contenedorTimeline").html('<div class="text-center p-4"><i class="fas fa-spinner fa-spin fa-2x"></i><br>Cargando expediente digital...</div>');

    var datos = new FormData();
    datos.append("idPaciente", idPaciente);

    $.ajax({
        url: "ajax/historia.ajax.php", 
        method: "POST",
        data: datos,
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json",
        success: function(respuesta){
            
            // [RF05] Inyectamos el botón de DNI en el header del modal dinámicamente
            if(respuesta.dni){
                $(`<a href="${respuesta.dni}" target="_blank" class="btn btn-sm btn-success mr-3 btn-dni-dinamico shadow-sm">
                    <i class="fas fa-id-card"></i> VER DNI DIGITAL
                   </a>`).insertBefore("#modalHistorialClinico .close");
            }

            // Manejo de la estructura de respuesta
            var historial = respuesta.historial ? respuesta.historial : respuesta;

            if(historial.length == 0 || !Array.isArray(historial)){
                $("#contenedorTimeline").html('<div class="alert alert-light border m-3">No hay visitas registradas para este paciente.</div>');
                return;
            }

            var lineaTiempo = "";

            historial.forEach(visita => {

                // [RF05] Generar HTML de adjuntos clínicos
                var htmlAdjuntos = "";
                if(visita.adjuntos && visita.adjuntos.length > 0){
                    visita.adjuntos.forEach(doc => {
                        htmlAdjuntos += `
                            <a href="${doc.ruta}" target="_blank" class="btn btn-xs btn-outline-danger mr-1 mb-1">
                                <i class="fas fa-file-pdf"></i> ${doc.tipo}
                            </a>`;
                    });
                } else {
                    htmlAdjuntos = '<small class="text-muted"><i>Sin documentos adjuntos</i></small>';
                }

                htmlAdjuntos += `
                    <button class="btn btn-xs btn-default text-primary btnSubirArchivoHistorial" idIngreso="${visita.id_ingreso}" idPaciente="${idPaciente}" title="Reemplazar o adjuntar nuevo">
                        <i class="fas fa-upload"></i>
                    </button>
                    <input type="file" class="inputArchivoHistorial" id="file-${visita.id_ingreso}" style="display:none" accept=".pdf,.jpg,.png">
                `;

                 var badgesCie = "";
                        if(visita.codigo_cie10){
                            var lista = visita.codigo_cie10.split(",");
                            lista.forEach(cie => {
                                badgesCie += `<span class="badge badge-info mr-1">${cie.trim()}</span>`;
                            });
                    }

                lineaTiempo += `
                <div class="time-label">
                    <span class="bg-primary">${visita.fecha_ingreso}</span>
                </div>
                <div>
                    <i class="fas fa-user-md bg-info text-white"></i>
                    <div class="timeline-item shadow-sm border-0">
                        <span class="time"><i class="fas fa-clock"></i> ID #${visita.id_ingreso}</span>
                        <h3 class="timeline-header">Atendido por Dr(a). <b>${visita.medico}</b></h3>

                       
                        
                        <div class="timeline-body">
                            <div class="row">
                                <div class="col-md-8">
                                    <p class="mb-1"><b>Diagnósticos:</b> ${badgesCie}</p>
                                    <p class="mb-1"><b>Tratamiento:</b> ${visita.medicamentos}</p>
                                    <p class="mb-0 text-muted small"><b>Indicaciones:</b> ${visita.indicaciones}</p>
                                </div>
                                <div class="col-md-4 border-left">
                                    <label class="small font-weight-bold text-primary"><i class="fas fa-paperclip"></i> ADJUNTOS (RF05):</label><br>
                                    ${htmlAdjuntos}
                                </div>
                            </div>
                        </div>

                        <div class="timeline-footer">
                            <a href="extenciones/TCPDF/pdf/receta.php?idIngreso=${visita.id_ingreso}" target="_blank" class="btn btn-xs btn-primary shadow-sm">
                                <i class="fas fa-print mr-1"></i> Re-imprimir Receta
                            </a>
                        </div>
                    </div>
                </div>`;
            });

            $("#contenedorTimeline").html(lineaTiempo + '<div><i class="fas fa-clock bg-gray text-white"></i></div>');
        },
        error: function(e){
            console.log("Error en AJAX:", e.responseText);
            $("#contenedorTimeline").html('<div class="alert alert-danger m-3">Error al cargar el historial.</div>');
        }
    });
});


$(".tablas, .dt-reportes").on("click", ".btnEditarConsulta", function(){

    var idIngreso = $(this).attr("idIngreso");

    var datos = new FormData();
    datos.append("idIngresoConsulta", idIngreso); // Variable para el AJAX

    $.ajax({
        url: "ajax/consulta.ajax.php",
        method: "POST",
        data: datos,
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json",
        success: function(respuesta){
            
            // Llenamos los campos del modal con la respuesta de la DB
            $("#idIngresoEditar").val(respuesta["id_ingreso"]);
            $("#editarAnamnesis").val(respuesta["anamnesis"]);
            $("#editarExamenFisico").val(respuesta["examen_fisico"]);
            $("#editarTratamiento").val(respuesta["medicamentos"]); // Viene de la tabla tratamiento
            $("#editarProcedimientos").val(respuesta["procedimientos"]); // Viene de la tabla tratamiento
            $("#editarIndicaciones").val(respuesta["indicaciones"]); // Viene de la tabla tratamiento
            $("#editarCie10").val(respuesta["codigo_cie10"]); // Viene de la tabla diagnostico
            $("#editarDestino").val(respuesta["destino_final"]);
            
        }
    });
});

        /*=============================================
        ANULAR CONSULTA MÉDICA
        =============================================*/
        $(".tablas, .dt-reportes").on("click", ".btnAnularConsulta", function(){

            var idIngreso = $(this).attr("idIngreso");

            swal({
                title: "¿Está seguro de anular esta atención?",
                text: "¡Esta acción se registrará en la auditoría y la receta ya no será válida!",
                icon: "warning",
                buttons: ["Cancelar", "Sí, anular"],
                dangerMode: true,
            }).then((willDelete) => {
                if (willDelete) {
                    
                    var datos = new FormData();
                    datos.append("idAnular", idIngreso); // Enviamos el ID al AJAX

                    $.ajax({
                        url: "ajax/consulta.ajax.php",
                        method: "POST",
                        data: datos,
                        cache: false,
                        contentType: false,
                        processData: false,
                        success: function(respuesta){
                            if(respuesta == "ok"){
                                swal("Anulado", "La atención ha sido anulada correctamente.", "success")
                                .then(() => {
                                    location.reload(); // Recargamos para que desaparezca de la lista
                                });
                            }
                        }
                    });
                }
            });
        });

/*=============================================
SUBIR O REEMPLAZAR ARCHIVO DESDE EL HISTORIAL
=============================================*/
$(document).on("click", ".btnSubirArchivoHistorial", function(){
    $(this).next(".inputArchivoHistorial").click();
});

$(document).on("change", ".inputArchivoHistorial", function(){
    
    var idIngreso = $(this).prev().attr("idIngreso");
    var idPaciente = $(this).prev().attr("idPaciente");
    var archivo = this.files[0];

    if(!archivo) return;

    var datos = new FormData();
    datos.append("idIngresoEdicion", idIngreso);
    datos.append("idPacienteEdicion", idPaciente);
    datos.append("archivoNuevo", archivo);

    $.ajax({
        url: "ajax/historia.ajax.php", // Usaremos el mismo archivo AJAX
        method: "POST",
        data: datos,
        cache: false,
        contentType: false,
        processData: false,
        success: function(respuesta){
            if(respuesta == "ok"){
                swal({
                    icon: "success",
                    title: "Archivo actualizado",
                    text: "El documento se ha cargado correctamente."
                }).then(() => {
                    // Opcional: Recargar el historial para ver el cambio
                    $(".btnHistorialPaciente[idpaciente='"+idPaciente+"']").click();
                });
            }
        }
    });
});