<?php
// Debug final da API de checklist
echo "<h1>🔍 Debug Final da API de Checklist</h1>";

// 1. Testar conexão com banco
echo "<h2>1️⃣ Teste de Conexão com Banco</h2>";
$host = 'localhost';
$dbname = 'pinheir3_controle_frotasV1.1';
$username = 'pinheir3_admin';
$password = '080880Gelboy';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "<p style='color: green;'>✅ Conexão com banco OK!</p>";
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro de conexão: " . $e->getMessage() . "</p>";
    exit;
}

// 2. Verificar tabela checklist_veiculo
echo "<h2>2️⃣ Verificar Tabela checklist_veiculo</h2>";
try {
    $stmt = $pdo->query("SHOW TABLES LIKE 'checklist_veiculo'");
    if ($stmt->rowCount() > 0) {
        echo "<p style='color: green;'>✅ Tabela checklist_veiculo existe!</p>";
        
        // Verificar estrutura
        $stmt = $pdo->query("DESCRIBE checklist_veiculo");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        echo "<p><strong>Colunas:</strong></p>";
        echo "<ul>";
        foreach ($colunas as $coluna) {
            echo "<li>{$coluna['Field']} - {$coluna['Type']}</li>";
        }
        echo "</ul>";
    } else {
        echo "<p style='color: red;'>❌ Tabela checklist_veiculo NÃO existe!</p>";
    }
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro ao verificar tabela: " . $e->getMessage() . "</p>";
}

// 3. Verificar tabela checklist_fotos
echo "<h2>3️⃣ Verificar Tabela checklist_fotos</h2>";
try {
    $stmt = $pdo->query("SHOW TABLES LIKE 'checklist_fotos'");
    if ($stmt->rowCount() > 0) {
        echo "<p style='color: green;'>✅ Tabela checklist_fotos existe!</p>";
    } else {
        echo "<p style='color: red;'>❌ Tabela checklist_fotos NÃO existe!</p>";
    }
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro ao verificar tabela fotos: " . $e->getMessage() . "</p>";
}

// 4. Testar inserção direta
echo "<h2>4️⃣ Teste de Inserção Direta</h2>";
try {
    $sql = "INSERT INTO checklist_veiculo (
        viagem_id, veiculo_id, tipo_veiculo, data_hora, itens_json, observacoes_gerais
    ) VALUES (?, ?, ?, ?, ?, ?)";
    
    $dados = [
        1, // viagem_id
        6, // veiculo_id
        'CARRO', // tipo_veiculo
        date('Y-m-d H:i:s'), // data_hora
        json_encode(['teste' => 'dados']), // itens_json
        'Teste debug final' // observacoes_gerais
    ];
    
    $stmt = $pdo->prepare($sql);
    $resultado = $stmt->execute($dados);
    
    if ($resultado) {
        $checklistId = $pdo->lastInsertId();
        echo "<p style='color: green;'>✅ Inserção direta OK! ID: $checklistId</p>";
        
        // Limpar teste
        $stmt = $pdo->prepare("DELETE FROM checklist_veiculo WHERE id = ?");
        $stmt->execute([$checklistId]);
        echo "<p style='color: blue;'>🧹 Teste removido</p>";
    } else {
        echo "<p style='color: red;'>❌ Erro na inserção direta!</p>";
        $erros = $stmt->errorInfo();
        echo "<p><strong>Erro:</strong> " . json_encode($erros) . "</p>";
    }
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro no teste de inserção: " . $e->getMessage() . "</p>";
}

// 5. Testar API via cURL
echo "<h2>5️⃣ Teste da API via cURL</h2>";
$dadosAPI = [
    'viagemId' => 1,
    'veiculoId' => 6,
    'tipoVeiculo' => 'CARRO',
    'dataHora' => date('Y-m-d H:i:s'),
    'observacoesGerais' => 'Teste debug final',
    'itens' => [
        'doc_documentos' => [
            'nome' => 'DOCUMENTOS',
            'categoria' => 'DOCUMENTOS E CARTÕES',
            'status' => 'OK',
            'observacao' => ''
        ]
    ]
];

$url = 'https://sistemas.pinheiroempresas.com.br/controlefrotaV1.1/backend-php/api-simples-v2.php?acao=checklist_veiculo';

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($dadosAPI));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'Accept: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_TIMEOUT, 30);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$curlError = curl_error($ch);
curl_close($ch);

echo "<p><strong>Código HTTP:</strong> $httpCode</p>";

if ($curlError) {
    echo "<p style='color: red;'><strong>Erro cURL:</strong> $curlError</p>";
}

if ($response) {
    echo "<p><strong>Resposta da API:</strong></p>";
    echo "<pre>$response</pre>";
    
    $dadosResposta = json_decode($response, true);
    if ($dadosResposta && isset($dadosResposta['sucesso']) && $dadosResposta['sucesso']) {
        echo "<p style='color: green; font-size: 18px;'>✅ API FUNCIONANDO!</p>";
        
        if (isset($dadosResposta['dados']['id'])) {
            $checklistId = $dadosResposta['dados']['id'];
            echo "<p><strong>Checklist ID:</strong> $checklistId</p>";
            
            // Verificar se foi salvo no banco
            $stmt = $pdo->prepare("SELECT * FROM checklist_veiculo WHERE id = ?");
            $stmt->execute([$checklistId]);
            $checklist = $stmt->fetch(PDO::FETCH_ASSOC);
            
            if ($checklist) {
                echo "<p style='color: green;'>✅ Checklist confirmado no banco!</p>";
            } else {
                echo "<p style='color: red;'>❌ Checklist NÃO encontrado no banco!</p>";
            }
        }
    } else {
        echo "<p style='color: red; font-size: 18px;'>❌ ERRO na API!</p>";
        if ($dadosResposta) {
            echo "<p><strong>Mensagem:</strong> " . ($dadosResposta['mensagem'] ?? 'Erro desconhecido') . "</p>";
        }
    }
} else {
    echo "<p style='color: red;'>❌ Nenhuma resposta da API</p>";
}

echo "<h2>🎯 Diagnóstico Final</h2>";
echo "<p>Debug concluído! Verifique os resultados acima.</p>";
?>
