<?php
require_once 'conexao.php';

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

try {
    $pdo = conectarBanco();
    
    // Parâmetros de teste
    $rotaId = 39;
    $clienteId = 82;
    $novoStatus = 'chegou';
    
    echo "<h2>🔍 DEBUG: Status do Cliente</h2>";
    
    // 1. Verificar status atual
    echo "<h3>1. Status Atual:</h3>";
    $sqlCheck = "SELECT id, status_atendimento, hora_chegada, hora_saida FROM rota_clientes WHERE id = ? AND solicitacao_rota_id = ?";
    $stmtCheck = $pdo->prepare($sqlCheck);
    $stmtCheck->execute([$clienteId, $rotaId]);
    $clienteAtual = $stmtCheck->fetch(PDO::FETCH_ASSOC);
    
    if ($clienteAtual) {
        echo "✅ Cliente encontrado:<br>";
        echo "- ID: {$clienteAtual['id']}<br>";
        echo "- Status atual: '{$clienteAtual['status_atendimento']}'<br>";
        echo "- Hora chegada: '{$clienteAtual['hora_chegada']}'<br>";
        echo "- Hora saída: '{$clienteAtual['hora_saida']}'<br>";
    } else {
        echo "❌ Cliente não encontrado!<br>";
        return;
    }
    
    // 2. Simular a atualização
    echo "<h3>2. Simulando Atualização:</h3>";
    $pdo->beginTransaction();
    
    $sql = "UPDATE rota_clientes SET 
            status_atendimento = ?,
            hora_chegada = CASE WHEN ? = 'chegou' AND (hora_chegada IS NULL OR hora_chegada = '') THEN NOW() ELSE hora_chegada END,
            hora_saida = CASE WHEN ? = 'concluido' AND (hora_saida IS NULL OR hora_saida = '') THEN NOW() ELSE hora_saida END
            WHERE id = ? AND solicitacao_rota_id = ?";
    
    echo "SQL: $sql<br>";
    echo "Parâmetros: [$novoStatus, $novoStatus, $novoStatus, $clienteId, $rotaId]<br>";
    
    $stmt = $pdo->prepare($sql);
    $success = $stmt->execute([$novoStatus, $novoStatus, $novoStatus, $clienteId, $rotaId]);
    
    echo "Execute success: " . ($success ? 'true' : 'false') . "<br>";
    echo "Row count: " . $stmt->rowCount() . "<br>";
    
    // 3. Verificar status após atualização
    echo "<h3>3. Status Após Atualização:</h3>";
    $stmtCheck->execute([$clienteId, $rotaId]);
    $clienteAtualizado = $stmtCheck->fetch(PDO::FETCH_ASSOC);
    
    if ($clienteAtualizado) {
        echo "✅ Cliente após update:<br>";
        echo "- ID: {$clienteAtualizado['id']}<br>";
        echo "- Status: '{$clienteAtualizado['status_atendimento']}'<br>";
        echo "- Hora chegada: '{$clienteAtualizado['hora_chegada']}'<br>";
        echo "- Hora saída: '{$clienteAtualizado['hora_saida']}'<br>";
    }
    
    // 4. Verificar se a atualização funcionou
    if ($clienteAtualizado['status_atendimento'] === $novoStatus) {
        echo "<h3>✅ SUCESSO: Status atualizado corretamente!</h3>";
        $pdo->commit();
    } else {
        echo "<h3>❌ ERRO: Status não foi atualizado!</h3>";
        echo "Esperado: '$novoStatus'<br>";
        echo "Encontrado: '{$clienteAtualizado['status_atendimento']}'<br>";
        $pdo->rollBack();
    }
    
    // 5. Verificar estrutura da tabela
    echo "<h3>4. Estrutura da Tabela:</h3>";
    $sqlStructure = "DESCRIBE rota_clientes";
    $stmtStructure = $pdo->query($sqlStructure);
    $structure = $stmtStructure->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1'>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
    foreach ($structure as $field) {
        echo "<tr>";
        echo "<td>{$field['Field']}</td>";
        echo "<td>{$field['Type']}</td>";
        echo "<td>{$field['Null']}</td>";
        echo "<td>{$field['Key']}</td>";
        echo "<td>{$field['Default']}</td>";
        echo "<td>{$field['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 6. Verificar todos os clientes da rota
    echo "<h3>5. Todos os Clientes da Rota $rotaId:</h3>";
    $sqlTodos = "SELECT id, nome_cliente, status_atendimento, hora_chegada, hora_saida FROM rota_clientes WHERE solicitacao_rota_id = ? ORDER BY ordem_sequencia";
    $stmtTodos = $pdo->prepare($sqlTodos);
    $stmtTodos->execute([$rotaId]);
    $todosClientes = $stmtTodos->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table border='1'>";
    echo "<tr><th>ID</th><th>Nome</th><th>Status</th><th>Hora Chegada</th><th>Hora Saída</th></tr>";
    foreach ($todosClientes as $cliente) {
        echo "<tr>";
        echo "<td>{$cliente['id']}</td>";
        echo "<td>{$cliente['nome_cliente']}</td>";
        echo "<td>{$cliente['status_atendimento']}</td>";
        echo "<td>{$cliente['hora_chegada']}</td>";
        echo "<td>{$cliente['hora_saida']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
} catch (Exception $e) {
    echo "<h3>❌ ERRO:</h3>";
    echo "Erro: " . $e->getMessage();
}
?>
