<?php
header('Content-Type: application/json');

// Clave de encriptación
$key = 'Stech';

// Función para desencriptar
function decrypt($data, $key) {
    list($encrypted_data, $iv) = explode('::', base64_decode($data), 2);
    return openssl_decrypt($encrypted_data, 'aes-256-cbc', $key, 0, $iv);
}

// Obtener y desencriptar la variable encriptada
$encryptedData = $_GET['data'];
$decryptedData = decrypt($encryptedData, $key);

// Separar los datos
list($imei, $fechaHora) = explode('||', $decryptedData);

// Verificar si la fecha y hora es válida
if (!$fechaHora) {
    echo json_encode(['error' => 'El parámetro fecha_hora es requerido.']);
    exit;
}

// Verificar si la ejecución está dentro del límite de 24 horas
$fechaEntrada = strtotime($fechaHora);
$fechaLimite = strtotime('+24 hours', $fechaEntrada);
if (time() > $fechaLimite) {
    echo json_encode(['error' => 'La ejecución ha excedido el límite de 24 horas.']);
    exit;
}

// Conexión a la base de datos
$servername = '10.118.144.75';
$username = 'web';
$password = 'mYREbJG0E1lW';
$dbname = 'gpsimple';

$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
    echo json_encode(['error' => 'Error al conectar a la base de datos: ' . $conn->connect_error]);
    exit;
}

// Obtener la posición del punto desde la base de datos
$sql = "SELECT lat, lng, speed, plate_number FROM gs_objects WHERE imei = '$imei'";
$result = $conn->query($sql);

if ($result->num_rows > 0) {
    $row = $result->fetch_assoc();
    $latitud = $row['lat'];
    $longitud = $row['lng'];
    $velocidad = $row['speed'];
    $nombre = $row['plate_number'];
    echo json_encode([
        'lat' => $latitud, 
        'lng' => $longitud, 
        'speed' => $velocidad, 
        'plate_number' => $nombre
    ]);
} else {
    echo json_encode(['error' => 'No se encontró la posición del punto para el IMEI especificado.']);
}

$conn->close();
?>
