<?php
// api/getTrabajos.php
header('Content-Type: application/json');
require 'conexion.php';

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

session_start();
if (!isset($_SESSION['id_usuario'])) {
    echo json_encode(["error" => "Sesión no iniciada"]);
    exit;
}

$id_usuario = $_SESSION['id_usuario'];
$usuario_query = $conexion->query("SELECT id_empresa FROM usuarios_sistema WHERE id_usuario = $id_usuario");
if ($usuario_query->num_rows === 0) {
    echo json_encode(["error" => "Usuario no encontrado"]);
    exit;
}
$id_empresa = (int)$usuario_query->fetch_assoc()['id_empresa'];

$searchTerm = isset($_GET['searchTerm']) ? $_GET['searchTerm'] : '';
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 20;
$offset = ($page - 1) * $limit;

$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 ?)
     AND tf.id_empresa = ?
GROUP BY 
    tf.id, tf.trabajo_id_hidden, u.apellido_paterno, u.apellido_materno, u.nombres,
    u.numero_cuadrilla, tf.serie_nueva, tf.serie_baja, tf.cto,
    tr.cliente, tf.tipo_servicio, tr.direccion, tf.foto_metraje_inicio,
    tf.foto_metraje_termino, tf.foto_boleta, tf.fecha_creacion
ORDER BY tf.fecha_creacion DESC
LIMIT ? OFFSET ?";

$stmt = $conexion->prepare($sql);
$searchTermWithWildcard = '%' . $searchTerm . '%';

// ⛔ ANTES: 'sssssiiii' (9 tipos, pero solo 8 valores) → ERROR
// ✅ AHORA: 5 strings, 3 ints = 'sssssiii'
$stmt->bind_param('sssssiii',
    $searchTermWithWildcard,
    $searchTermWithWildcard,
    $searchTermWithWildcard,
    $searchTermWithWildcard,
    $searchTermWithWildcard,
    $id_empresa,
    $limit,
    $offset
);

$stmt->execute();
$result = $stmt->get_result();

$trabajos = [];
while ($row = $result->fetch_assoc()) {
    $trabajos[] = $row;
}

echo json_encode($trabajos);
?>
