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

// Credenciales DB
$host = 'localhost';
$username = 'root';
$password = 'root';
$database = 'rastreo';

// Conexión
$mysqli = new mysqli($host, $username, $password, $database);
if ($mysqli->connect_errno) {
    echo json_encode(['success' => false, 'msg' => 'Error de conexión: ' . $mysqli->connect_error]);
    exit;
}

// Recibir datos POST
$nombre = isset($_POST['nombre']) ? trim($_POST['nombre']) : null;
$lat    = isset($_POST['lat']) ? floatval($_POST['lat']) : null;
$lng    = isset($_POST['lng']) ? floatval($_POST['lng']) : null;

// Validar datos
if (!$nombre || $lat === null || $lng === null) {
    echo json_encode(['success' => false, 'msg' => 'Faltan datos obligatorios (nombre, lat, lng)']);
    exit;
}

// Validar rango de coordenadas
if ($lat < -90 || $lat > 90 || $lng < -180 || $lng > 180) {
    echo json_encode(['success' => false, 'msg' => 'Coordenadas fuera de rango']);
    exit;
}

// Verificar si ya existe un registro con ese nombre
$stmt = $mysqli->prepare("SELECT id FROM nuevasubicaciones WHERE nombre = ?");
$stmt->bind_param('s', $nombre);
$stmt->execute();
$stmt->store_result();

if ($stmt->num_rows > 0) {
    // Existe: UPDATE
    $stmt->close();
    $update = $mysqli->prepare("UPDATE nuevasubicaciones SET lat = ?, lng = ?, fecha = NOW() WHERE nombre = ?");
    if (!$update) {
        echo json_encode(['success' => false, 'msg' => 'Error en UPDATE: ' . $mysqli->error]);
        exit;
    }
    $update->bind_param('dds', $lat, $lng, $nombre);
    if ($update->execute()) {
        echo json_encode(['success' => true, 'msg' => 'Ubicación actualizada correctamente']);
    } else {
        echo json_encode(['success' => false, 'msg' => 'Error al actualizar: ' . $update->error]);
    }
    $update->close();
} else {
    // No existe: INSERT
    $stmt->close();
    $insert = $mysqli->prepare("INSERT INTO nuevasubicaciones (nombre, lat, lng, fecha) VALUES (?, ?, ?, NOW())");
    if (!$insert) {
        echo json_encode(['success' => false, 'msg' => 'Error en INSERT: ' . $mysqli->error]);
        exit;
    }
    $insert->bind_param('sdd', $nombre, $lat, $lng);
    if ($insert->execute()) {
        echo json_encode(['success' => true, 'msg' => 'Ubicación guardada correctamente']);
    } else {
        echo json_encode(['success' => false, 'msg' => 'Error al guardar: ' . $insert->error]);
    }
    $insert->close();
}

$mysqli->close();
