<?php
// Script para testar o endpoint alterar-status-cliente
header('Content-Type: application/json');

// Incluir o arquivo de conexão
require_once 'conexao.php';

try {
    $pdo = conectarBanco();
    
    // Parâmetros de teste
    $rotaId = 38;
    $clienteId = 80;
    $novoStatus = 'chegou';
    
    echo "🔧 TESTE alterar-status-cliente:\n";
    echo "   - rota_id: $rotaId\n";
    echo "   - cliente_id: $clienteId\n";
    echo "   - novo_status: $novoStatus\n";
    
    // Verificar status atual do cliente antes da atualização
    $sqlCheck = "SELECT 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 "   - Status atual: " . $clienteAtual['status_atendimento'] . "\n";
        echo "   - Hora chegada atual: " . $clienteAtual['hora_chegada'] . "\n";
        echo "   - Hora saída atual: " . $clienteAtual['hora_saida'] . "\n";
    } else {
        echo "   - Cliente não encontrado!\n";
        exit;
    }
    
    // Atualizar status do cliente
    $sql = "UPDATE rota_clientes SET 
            status_atendimento = ?,
            hora_chegada = CASE WHEN ? = 'chegou' AND hora_chegada IS NULL THEN NOW() ELSE hora_chegada END,
            hora_saida = CASE WHEN ? = 'concluido' AND hora_saida IS NULL THEN NOW() ELSE hora_saida END
            WHERE id = ? AND solicitacao_rota_id = ?";
    
    echo "   - SQL: $sql\n";
    echo "   - Parâmetros: [$novoStatus, $novoStatus, $novoStatus, $clienteId, $rotaId]\n";
    
    $stmt = $pdo->prepare($sql);
    $success = $stmt->execute([$novoStatus, $novoStatus, $novoStatus, $clienteId, $rotaId]);
    
    echo "   - Execute success: " . ($success ? 'true' : 'false') . "\n";
    echo "   - Row count: " . $stmt->rowCount() . "\n";
    
    // Verificar status após a atualização
    $stmtCheck->execute([$clienteId, $rotaId]);
    $clienteAtualizado = $stmtCheck->fetch(PDO::FETCH_ASSOC);
    
    if ($clienteAtualizado) {
        echo "   - Status após update: " . $clienteAtualizado['status_atendimento'] . "\n";
        echo "   - Hora chegada após update: " . $clienteAtualizado['hora_chegada'] . "\n";
        echo "   - Hora saída após update: " . $clienteAtualizado['hora_saida'] . "\n";
    }
    
    // Verificar se a rota foi atualizada
    $sqlRota = "SELECT status FROM solicitacoes_rotas WHERE id = ?";
    $stmtRota = $pdo->prepare($sqlRota);
    $stmtRota->execute([$rotaId]);
    $rota = $stmtRota->fetch(PDO::FETCH_ASSOC);
    
    echo "   - Status da rota: " . $rota['status'] . "\n";
    
} catch (Exception $e) {
    echo "❌ Erro: " . $e->getMessage() . "\n";
}
?>
