<?php
// Debug da finalização de rota
echo "=== DEBUG FINALIZAR ROTA ===\n";

// 1. Verificar se o arquivo foi atualizado
$arquivo = 'api-simples-v2.php';
$conteudo = file_get_contents($arquivo);

// 2. Procurar por problemas específicos
echo "🔍 Verificando problemas...\n";

// Verificar se há COALESCE com data_inicio
if (preg_match('/COALESCE.*data_inicio.*data_inicio/', $conteudo)) {
    echo "❌ ENCONTRADO: COALESCE com data_inicio duplo\n";
    preg_match_all('/COALESCE.*data_inicio.*data_inicio/', $conteudo, $matches);
    foreach ($matches[0] as $match) {
        echo "   - $match\n";
    }
} else {
    echo "✅ NÃO ENCONTRADO: COALESCE com data_inicio duplo\n";
}

// Verificar se há UPDATE com data_inicio
if (preg_match('/UPDATE.*solicitacoes_rotas.*SET.*data_inicio/', $conteudo)) {
    echo "❌ ENCONTRADO: UPDATE com data_inicio\n";
    preg_match_all('/UPDATE.*solicitacoes_rotas.*SET.*data_inicio/', $conteudo, $matches);
    foreach ($matches[0] as $match) {
        echo "   - $match\n";
    }
} else {
    echo "✅ NÃO ENCONTRADO: UPDATE com data_inicio\n";
}

// 3. Testar a finalização diretamente
echo "\n🧪 Testando finalização...\n";

try {
    require_once 'conexao.php';
    $pdo = conectarBanco();
    
    // Simular exatamente o que o app está enviando
    $rotaId = 77;
    $kmReal = 10;
    $observacoes = "";
    $dataFim = "2025-08-25T18:47:21.080757";
    
    // Verificar se a rota existe
    $sqlRota = "SELECT id, titulo, status, km_estimado FROM solicitacoes_rotas WHERE id = ?";
    $stmtRota = $pdo->prepare($sqlRota);
    $stmtRota->execute([$rotaId]);
    $rota = $stmtRota->fetch(PDO::FETCH_ASSOC);
    
    if (!$rota) {
        echo "❌ Rota $rotaId não encontrada\n";
        exit;
    }
    
    echo "✅ Rota encontrada: {$rota['titulo']} (Status: {$rota['status']})\n";
    
    // Calcular diferença de KM
    $diferencaKm = $kmReal - $rota['km_estimado'];
    $justificativaKm = '';
    
    if (abs($diferencaKm) > 5) {
        $justificativaKm = 'Diferença significativa detectada';
    }
    
    // Executar o UPDATE
    $sql = "UPDATE solicitacoes_rotas SET 
            status = 'concluida',
            km_real = ?,
            diferenca_km_calculada = ?,
            justificativa_km = ?,
            observacoes_finais = ?,
            data_fim_real = ?
            WHERE id = ?";
    
    echo "📝 Executando SQL: $sql\n";
    
    $stmt = $pdo->prepare($sql);
    $success = $stmt->execute([
        $kmReal,
        $diferencaKm,
        $justificativaKm,
        $observacoes,
        $dataFim,
        $rotaId
    ]);
    
    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";
    } 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 DEBUG ===\n";
?>
