<?php
//Incluímos inicialmente la conexión a la base de datos
require "../config/Conexion.php";

class SolicitudExamen
{
    //Implementamos nuestro constructor
    public function __construct()
    {
    }

    //Insertar nueva solicitud de examen
    public function insertar($idatencion, $idpersona, $tipo, $contenido, $idempleado)
    {
        global $conexion;
        $contenido = mysqli_real_escape_string($conexion, $contenido);
        $idatencionVal = empty($idatencion) ? "NULL" : "'$idatencion'";
        $sql = "INSERT INTO solicitud_examen (idatencion, idpersona, tipo, contenido, fecha_emision, firmado, idempleado, estado)
                VALUES ($idatencionVal, '$idpersona', '$tipo', '$contenido', current_date(), 0, '$idempleado', 'borrador')";
        return ejecutarConsulta_retornarID($sql);
    }

    //Actualizar ruta del PDF firmado
    public function actualizarPDF($idsolicitud, $ruta_pdf, $idempleado_firma)
    {
        $sql = "UPDATE solicitud_examen SET 
                ruta_pdf_firmado='$ruta_pdf', 
                firmado=1, 
                fecha_firma=NOW(), 
                idempleado_firma='$idempleado_firma',
                estado='firmado'
                WHERE idsolicitud='$idsolicitud'";
        return ejecutarConsulta($sql);
    }

    //Listar historial de solicitudes
    public function listarHistorial()
    {
        $sql = "SELECT 
                s.idsolicitud,
                s.fecha_registro,
                s.fecha_emision,
                s.tipo,
                s.firmado,
                s.estado,
                s.ruta_pdf_firmado,
                CONCAT(p.apaterno, ' ', p.amaterno, ' ', p.nombre) as paciente,
                p.num_documento,
                CONCAT(pu.nombre, ' ', pu.apaterno, ' ', pu.amaterno) as medico_genera
                FROM solicitud_examen s
                INNER JOIN persona p ON s.idpersona = p.idpersona
                LEFT JOIN usuario u ON s.idempleado = u.idusuario
                LEFT JOIN persona pu ON s.idempleado = pu.idpersona
                ORDER BY s.fecha_registro DESC";
        return ejecutarConsulta($sql);
    }

    //Mostrar una solicitud específica
    public function mostrar($idsolicitud)
    {
        $sql = "SELECT * FROM solicitud_examen WHERE idsolicitud='$idsolicitud'";
        return ejecutarConsultaSimpleFila($sql);
    }

    //Eliminar una solicitud (individual)
    public function eliminar($idsolicitud)
    {
        $sql = "DELETE FROM solicitud_examen WHERE idsolicitud='$idsolicitud'";
        return ejecutarConsulta($sql);
    }

    //Eliminar múltiples solicitudes (por lotes)
    public function eliminarLote($ids)
    {
        // $ids debe ser un array de IDs
        $idsString = implode(',', array_map('intval', $ids));
        $sql = "DELETE FROM solicitud_examen WHERE idsolicitud IN ($idsString)";
        return ejecutarConsulta($sql);
    }
}
?>