<?php
// api/getTrabajos.php
header('Content-Type: application/json');
require 'conexion.php'; // Conexión a la base de datos

// Mostrar errores para depuración
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Obtener los parámetros de búsqueda y paginación enviados por AJAX
$searchTerm = isset($_GET['searchTerm']) ? $_GET['searchTerm'] : '';
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 20; // Establecer el límite de registros por página
$offset = ($page - 1) * $limit; // Calcular el desplazamiento para la paginación

// Consulta SQL con LIMIT y OFFSET para la paginación y ordenada por fecha_creacion
$sql = "SELECT 
    tf.id,
    tf.trabajo_id_hidden AS pedido,
    CONCAT(u.apellido_paterno, ' ', u.apellido_materno, ' ', u.nombres) AS nombre_usuario,
    u.numero_cuadrilla AS cuadrilla,
    tf.serie_nueva,
    tf.serie_baja,
    tf.cto AS cto_real,
    tr.cliente AS cliente,
     tf.tipo_servicio AS tipo_servicio,
    tr.direccion AS direccion_cliente,
    tf.foto_metraje_inicio,  
    tf.foto_metraje_termino, 
     tf.foto_boleta, 
    GROUP_CONCAT(h.herramienta ORDER BY h.herramienta SEPARATOR ', ') AS herramientas,
    SUM(h.cantidad) AS cantidad_total,
    tf.fecha_creacion
FROM trabajos_formulario tf
LEFT JOIN usuarios u ON tf.user_id = u.id
LEFT JOIN trabajos tr ON tf.trabajo_id_hidden = tr.valida_cod_pedido
LEFT JOIN herramientas h ON tf.id = h.trabajo_id
WHERE 
    (u.nombres LIKE ? OR 
    tf.trabajo_id_hidden LIKE ? OR 
    tf.serie_nueva LIKE ? OR
    tr.direccion LIKE ? OR
    CONCAT(u.apellido_paterno, ' ', u.apellido_materno, ' ', u.nombres) LIKE ?)
GROUP BY tf.id, tf.trabajo_id_hidden, u.nombres, u.numero_cuadrilla, tf.serie_nueva, tf.serie_baja, tr.cto, tr.direccion, tf.foto_metraje_inicio, tf.foto_metraje_termino, tf.fecha_creacion
ORDER BY tf.fecha_creacion DESC  -- Ordena por fecha_creacion, de la más reciente a la más antigua
LIMIT ? OFFSET ?"; // Se agrega LIMIT y OFFSET para la paginación

// Preparar y ejecutar la consulta
$stmt = $conn->prepare($sql);
$searchTermWithWildcard = '%' . $searchTerm . '%';
$stmt->bind_param('ssssssi', $searchTermWithWildcard, $searchTermWithWildcard, $searchTermWithWildcard, $searchTermWithWildcard, $searchTermWithWildcard, $limit, $offset);  // Bind 7 parámetros
$stmt->execute();
$result = $stmt->get_result();

// Recoger los resultados y devolverlos como JSON
$trabajos = [];
while ($row = $result->fetch_assoc()) {
    $trabajos[] = $row;
}

echo json_encode($trabajos);
?>
