-- Corrigir KM GPS da Viagem 151
-- Baseado nas coordenadas GPS já existentes

-- 1. VERIFICAR DADOS ATUAIS
SELECT 
    id,
    latitude_inicial, longitude_inicial,
    latitude_final, longitude_final,
    km_gps_final as 'KM GPS Atual'
FROM viagens 
WHERE id = 151;

-- 2. CALCULAR DISTÂNCIA EM KM
-- Fórmula de Haversine adaptada para SQL
-- lat1=-11.01638130, lon1=-37.07611590
-- lat2=-11.01640470, lon2=-37.07615030

SET @lat1 = -11.01638130;
SET @lon1 = -37.07611590;
SET @lat2 = -11.01640470;  
SET @lon2 = -37.07615030;

-- Cálculo da distância
SET @distancia_km = (
    6371 * acos(
        cos(radians(@lat1)) 
        * cos(radians(@lat2)) 
        * cos(radians(@lon2) - radians(@lon1)) 
        + sin(radians(@lat1)) 
        * sin(radians(@lat2))
    )
);

SELECT @distancia_km as 'Distância Calculada (KM)';

-- 3. APLICAR CORREÇÃO
UPDATE viagens 
SET km_gps_final = @distancia_km
WHERE id = 151;

-- 4. VERIFICAR RESULTADO
SELECT 
    id,
    km_gps_final as 'KM GPS Corrigido',
    CONCAT('✅ Corrigido para ', ROUND(km_gps_final, 3), ' km') as Status
FROM viagens 
WHERE id = 151;

-- 5. REGISTRO DA CORREÇÃO NAS OBSERVAÇÕES
UPDATE viagens 
SET observacoes = CONCAT(
    COALESCE(observacoes, ''), 
    ' | KM GPS corrigido automaticamente em ', NOW(), 
    ' - Distância: ', ROUND(@distancia_km, 3), ' km'
)
WHERE id = 151; 