<?php
// Forçar atualização e testar finalização
echo "=== TESTE FINALIZAR ROTA FORÇADO ===\n";

// 1. Forçar atualização do arquivo
$arquivo = 'api-simples-v2.php';
if (file_exists($arquivo)) {
    touch($arquivo);
    echo "✅ Timestamp do arquivo atualizado\n";
}

// 2. Limpar cache se possível
if (function_exists('opcache_reset')) {
    opcache_reset();
    echo "✅ OPcache resetado\n";
}

// 3. Testar diretamente no banco
try {
    require_once 'conexao.php';
    $pdo = conectarBanco();
    
    echo "🔍 Testando finalização da rota 77...\n";
    
    // Verificar se a rota existe
    $stmt = $pdo->prepare("SELECT id, titulo, status, km_estimado FROM solicitacoes_rotas WHERE id = 77");
    $stmt->execute();
    $rota = $stmt->fetch(PDO::FETCH_ASSOC);
    
    if (!$rota) {
        echo "❌ Rota 77 não encontrada\n";
        exit;
    }
    
    echo "✅ Rota encontrada: {$rota['titulo']} (Status: {$rota['status']})\n";
    
    // Simular dados do app
    $kmReal = 10;
    $observacoes = "";
    $dataFim = date('Y-m-d H:i:s');
    $diferencaKm = $kmReal - $rota['km_estimado'];
    $justificativaKm = '';
    
    if (abs($diferencaKm) > 5) {
        $justificativaKm = 'Diferença significativa detectada';
    }
    
    echo "📊 Dados de finalização:\n";
    echo "- KM Real: $kmReal\n";
    echo "- KM Estimado: {$rota['km_estimado']}\n";
    echo "- Diferença: $diferencaKm\n";
    echo "- Observações: '$observacoes'\n";
    echo "- Data Fim: $dataFim\n\n";
    
    // Executar UPDATE
    $sql = "UPDATE solicitacoes_rotas SET 
            status = 'concluida',
            km_real = ?,
            diferenca_km_calculada = ?,
            justificativa_km = ?,
            observacoes_finais = ?,
            data_fim_real = ?
            WHERE id = 77";
    
    echo "📝 Executando SQL: $sql\n";
    
    $stmt = $pdo->prepare($sql);
    $success = $stmt->execute([
        $kmReal,
        $diferencaKm,
        $justificativaKm,
        $observacoes,
        $dataFim
    ]);
    
    echo "Resultado:\n";
    echo "- Success: " . ($success ? 'true' : 'false') . "\n";
    echo "- RowCount: " . $stmt->rowCount() . "\n";
    
    if ($success && $stmt->rowCount() > 0) {
        echo "✅ Rota finalizada com sucesso!\n";
        
        // Verificar resultado
        $stmtVerificar = $pdo->prepare("SELECT id, titulo, status, km_real, data_fim_real FROM solicitacoes_rotas WHERE id = 77");
        $stmtVerificar->execute();
        $rotaFinalizada = $stmtVerificar->fetch(PDO::FETCH_ASSOC);
        
        echo "\nResultado final:\n";
        echo "- ID: {$rotaFinalizada['id']}\n";
        echo "- Título: {$rotaFinalizada['titulo']}\n";
        echo "- Status: {$rotaFinalizada['status']}\n";
        echo "- KM Real: {$rotaFinalizada['km_real']}\n";
        echo "- Data Fim: {$rotaFinalizada['data_fim_real']}\n";
        
        echo "\n🎉 SUCESSO! Agora teste no app.\n";
        
    } else {
        echo "❌ Falha ao finalizar rota\n";
    }
    
} catch (Exception $e) {
    echo "❌ ERRO: " . $e->getMessage() . "\n";
    echo "Stack trace:\n" . $e->getTraceAsString() . "\n";
}

echo "\n=== FIM TESTE ===\n";
?>
