<?php
require_once 'Conexion_BD.php';

header('Content-Type: application/json; charset=utf-8');
header('Cache-Control: no-store, no-cache, must-revalidate, max-age=0');
header('Pragma: no-cache');
header('Expires: 0');

$placa = isset($_GET['placa']) ? strtoupper(trim($_GET['placa'])) : '';
if ($placa === '') {
    http_response_code(400);
    echo json_encode(['error' => 'Placa no proporcionada.']);
    exit;
}

$conn   = new Conexion_BD();
$mysqli = $conn->getConnection();

/*
 * Trae datos del vehículo + tipo vehículo + tipo combustible.
 */
$sqlVehiculo = "
    SELECT 
        v.id,
        v.marca,
        v.modelo,
        v.capacidad_combustible,
        v.kilometraje_inicial,
        v.estado,
        tv.vehiculotipo                 AS tipo_vehiculo,
        v.tipo_combustible_id           AS tipo_combustible_id,
        tc.combustibletipo              AS tipo_combustible_nombre
    FROM vehiculos v
    LEFT JOIN tipovehiculo    tv ON v.tipo_vehiculo_id    = tv.id
    LEFT JOIN tipocombustible tc ON v.tipo_combustible_id = tc.id
    WHERE UPPER(v.placa) = ?
    LIMIT 1
";

$stmtVehiculo = $mysqli->prepare($sqlVehiculo);
$stmtVehiculo->bind_param('s', $placa);
$stmtVehiculo->execute();
$resultVehiculo = $stmtVehiculo->get_result();

if ($vehiculo = $resultVehiculo->fetch_assoc()) {

    // Validar estado de forma no sensible a mayúsculas/minúsculas
    if (isset($vehiculo['estado']) && strcasecmp($vehiculo['estado'], 'activo') !== 0) {
        echo json_encode(['error' => 'estado_invalido', 'estado' => $vehiculo['estado']]);
        $stmtVehiculo->close();
        $conn->closeConnection();
        exit;
    }

    // Último km registrado (si no hay, usar kilometraje_inicial)
    $vehiculo_id = (int)$vehiculo['id'];

    // ====== SOLO AGREGADO: también pedimos fecha y hora del último abastecimiento ======
    $sqlUltimoKm = "
        SELECT kilometraje, fecha_abastecimiento, hora_abastecimiento
        FROM control_combustible
        WHERE vehiculo_id = ?
        ORDER BY fecha_abastecimiento DESC, hora_abastecimiento DESC, id DESC
        LIMIT 1
    ";
    // ====================================================================================

    $stmtKm = $mysqli->prepare($sqlUltimoKm);
    $stmtKm->bind_param('i', $vehiculo_id);
    $stmtKm->execute();
    $resultKm = $stmtKm->get_result();
    $rowKm    = $resultKm->fetch_assoc();
    $kilometrajeActual = isset($rowKm['kilometraje']) ? (int)$rowKm['kilometraje'] : (int)$vehiculo['kilometraje_inicial'];
    $fechaUltimoKm = null;
    if ($rowKm && !empty($rowKm['fecha_abastecimiento'])) {
        $fecha = $rowKm['fecha_abastecimiento'];                
        $hora  = isset($rowKm['hora_abastecimiento']) ? $rowKm['hora_abastecimiento'] : null; 
        $fechaUltimoKm = $hora ? ($fecha . ' ' . $hora) : $fecha;
    }

    $stmtKm->close();

    echo json_encode([
        'id'                       => (int)$vehiculo['id'],
        'marca'                    => $vehiculo['marca'],
        'modelo'                   => $vehiculo['modelo'],
        'tipo_vehiculo'            => $vehiculo['tipo_vehiculo'],
        'tipo_combustible_id'      => (int)$vehiculo['tipo_combustible_id'],
        'tipo_combustible'         => $vehiculo['tipo_combustible_nombre'],   
        'tipo_combustible_nombre'  => $vehiculo['tipo_combustible_nombre'],
        'capacidad_combustible'    => $vehiculo['capacidad_combustible'],
        'kilometraje_actual'       => $kilometrajeActual,
        'fechaUltimoKm'            => $fechaUltimoKm
        
    ]);

} else {
    echo json_encode(['error' => 'no_existe']);
}

$stmtVehiculo->close();
$conn->closeConnection();
