<?php
header('Content-Type: text/html; charset=utf-8');

echo "<h2>🧪 TESTE COMPLETO: Checklist com Fotos</h2>";

// Dados simulados de um checklist com fotos
$checklistComFotos = [
    'viagemId' => 151,
    'veiculoId' => 6,
    'tipoVeiculo' => 'CARRO',
    'dataHora' => date('Y-m-d H:i:s'),
    'observacoesGerais' => 'Teste de checklist com fotos para debug',
    'itens' => [
        [
            'itemId' => 'pneu_dianteiro_esquerdo',
            'status' => 'PROBLEMA',
            'observacoes' => 'Desgaste irregular detectado'
        ],
        [
            'itemId' => 'farol_principal',
            'status' => 'OK',
            'observacoes' => 'Funcionando normalmente'
        ]
    ],
    'fotos' => [
        [
            'itemId' => 'pneu_dianteiro_esquerdo',
            'descricao' => 'Desgaste irregular no pneu dianteiro esquerdo',
            'base64' => base64_encode('DADOS_SIMULADOS_DE_IMAGEM_JPEG_HEADER_FAKE_TEST_1234567890'),
            'tipoMime' => 'image/jpeg'
        ],
        [
            'itemId' => 'pneu_dianteiro_esquerdo',
            'descricao' => 'Vista lateral do mesmo pneu',
            'base64' => base64_encode('SEGUNDA_IMAGEM_FAKE_PARA_TESTE_DETALHADO_9876543210'),
            'tipoMime' => 'image/jpeg'
        ]
    ]
];

echo "<h3>1. 📊 Dados que serão enviados:</h3>";
echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
echo "<h4>📋 Checklist:</h4>";
echo "<ul>";
echo "<li><strong>Viagem ID:</strong> {$checklistComFotos['viagemId']}</li>";
echo "<li><strong>Veículo ID:</strong> {$checklistComFotos['veiculoId']}</li>";
echo "<li><strong>Tipo:</strong> {$checklistComFotos['tipoVeiculo']}</li>";
echo "<li><strong>Total de itens:</strong> " . count($checklistComFotos['itens']) . "</li>";
echo "<li><strong>Total de fotos:</strong> " . count($checklistComFotos['fotos']) . "</li>";
echo "</ul>";

echo "<h4>📸 Fotos incluídas:</h4>";
foreach ($checklistComFotos['fotos'] as $i => $foto) {
    echo "<p><strong>Foto " . ($i + 1) . ":</strong></p>";
    echo "<ul>";
    echo "<li>Item: {$foto['itemId']}</li>";
    echo "<li>Descrição: {$foto['descricao']}</li>";
    echo "<li>Tamanho Base64: " . strlen($foto['base64']) . " caracteres</li>";
    echo "<li>Tipo MIME: {$foto['tipoMime']}</li>";
    echo "</ul>";
}
echo "</div>";

// Se for POST, processar o teste
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['executar_teste'])) {
    echo "<h3>2. 🚀 Executando Teste:</h3>";
    
    try {
        // Simular requisição para a API
        $url = 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']) . '/api/relatorios/api-checklist-v3.php?acao=checklist_veiculo';
        
        echo "<p><strong>URL da API:</strong> $url</p>";
        
        // Preparar dados JSON
        $jsonData = json_encode($checklistComFotos);
        
        echo "<p><strong>Tamanho do JSON:</strong> " . strlen($jsonData) . " bytes</p>";
        echo "<p><strong>JSON válido:</strong> " . (json_last_error() === JSON_ERROR_NONE ? '✅ SIM' : '❌ NÃO') . "</p>";
        
        // Fazer requisição via cURL
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_POST, true);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
        curl_setopt($ch, CURLOPT_HTTPHEADER, [
            'Content-Type: application/json',
            'Content-Length: ' . strlen($jsonData)
        ]);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ch, CURLOPT_TIMEOUT, 30);
        
        echo "<div style='background: #fff3cd; padding: 10px; margin: 10px 0; border-left: 5px solid #ffc107;'>";
        echo "<h4>⏳ Enviando requisição...</h4>";
        echo "<p>Aguarde o processamento...</p>";
        echo "</div>";
        
        $response = curl_exec($ch);
        $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
        $contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);
        
        curl_close($ch);
        
        echo "<h3>3. 📨 Resposta da API:</h3>";
        
        echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
        echo "<h4>📊 Informações HTTP:</h4>";
        echo "<ul>";
        echo "<li><strong>Código HTTP:</strong> $httpCode</li>";
        echo "<li><strong>Content-Type:</strong> $contentType</li>";
        echo "<li><strong>Tamanho da resposta:</strong> " . strlen($response) . " bytes</li>";
        echo "</ul>";
        echo "</div>";
        
        echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px; margin: 10px 0;'>";
        echo "<h4>📄 Resposta Completa:</h4>";
        echo "<pre style='background: white; padding: 10px; border: 1px solid #ccc; max-height: 300px; overflow: auto;'>";
        echo htmlspecialchars($response);
        echo "</pre>";
        echo "</div>";
        
        // Tentar decodificar JSON da resposta
        $responseData = json_decode($response, true);
        
        if ($responseData) {
            echo "<div style='background: #e0ffe0; padding: 15px; border-left: 5px solid #28a745; margin: 10px 0;'>";
            echo "<h4>✅ Resposta JSON decodificada:</h4>";
            echo "<ul>";
            echo "<li><strong>Sucesso:</strong> " . ($responseData['success'] ? 'SIM' : 'NÃO') . "</li>";
            echo "<li><strong>Mensagem:</strong> {$responseData['message']}</li>";
            
            if (isset($responseData['data'])) {
                echo "<li><strong>Checklist ID:</strong> {$responseData['data']['id']}</li>";
                echo "<li><strong>Fotos processadas:</strong> {$responseData['data']['fotosProcessadas']}</li>";
                echo "<li><strong>Total de itens:</strong> {$responseData['data']['totalItens']}</li>";
            }
            echo "</ul>";
            echo "</div>";
            
            // Verificar no banco se fotos foram salvas
            if (isset($responseData['data']['id'])) {
                $checklistId = $responseData['data']['id'];
                echo "<h3>4. 🔍 Verificação no Banco de Dados:</h3>";
                
                try {
                    require_once 'config/database.php';
                    $pdo = new PDO($dsn, $username, $password, $options);
                    
                    // Verificar checklist
                    $stmt = $pdo->prepare("SELECT * FROM checklist_veiculos WHERE id = ?");
                    $stmt->execute([$checklistId]);
                    $checklist = $stmt->fetch(PDO::FETCH_ASSOC);
                    
                    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
                    echo "<h4>📋 Checklist no Banco:</h4>";
                    if ($checklist) {
                        echo "<ul>";
                        echo "<li>✅ Checklist ID {$checklistId} existe</li>";
                        echo "<li><strong>Viagem:</strong> {$checklist['viagem_id']}</li>";
                        echo "<li><strong>Veículo:</strong> {$checklist['veiculo_id']}</li>";
                        echo "<li><strong>Tipo:</strong> {$checklist['tipo_veiculo']}</li>";
                        echo "<li><strong>Data:</strong> {$checklist['data_hora']}</li>";
                        echo "</ul>";
                    } else {
                        echo "<p>❌ Checklist ID $checklistId não encontrado no banco</p>";
                    }
                    echo "</div>";
                    
                    // Verificar fotos
                    $stmt = $pdo->prepare("SELECT * FROM checklist_fotos WHERE checklist_id = ?");
                    $stmt->execute([$checklistId]);
                    $fotos = $stmt->fetchAll(PDO::FETCH_ASSOC);
                    
                    echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px; margin: 10px 0;'>";
                    echo "<h4>📸 Fotos no Banco:</h4>";
                    if (count($fotos) > 0) {
                        echo "<p>✅ Encontradas " . count($fotos) . " fotos:</p>";
                        echo "<table border='1' style='border-collapse: collapse; width: 100%;'>";
                        echo "<tr><th>ID</th><th>Item</th><th>Arquivo</th><th>Tamanho</th><th>Existe no Disco</th></tr>";
                        
                        foreach ($fotos as $foto) {
                            $arquivoExiste = file_exists($foto['caminho_arquivo']) ? '✅' : '❌';
                            echo "<tr>";
                            echo "<td>{$foto['id']}</td>";
                            echo "<td>{$foto['item_id']}</td>";
                            echo "<td>{$foto['nome_arquivo']}</td>";
                            echo "<td>{$foto['tamanho_arquivo']} bytes</td>";
                            echo "<td>$arquivoExiste</td>";
                            echo "</tr>";
                        }
                        echo "</table>";
                    } else {
                        echo "<p>❌ Nenhuma foto encontrada para o checklist ID $checklistId</p>";
                    }
                    echo "</div>";
                    
                } catch (Exception $e) {
                    echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545;'>";
                    echo "<h4>❌ Erro ao verificar banco:</h4>";
                    echo "<p>{$e->getMessage()}</p>";
                    echo "</div>";
                }
            }
            
        } else {
            echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545;'>";
            echo "<h4>❌ Falha ao decodificar resposta JSON</h4>";
            echo "<p>Erro JSON: " . json_last_error_msg() . "</p>";
            echo "</div>";
        }
        
        // Verificar logs do servidor
        echo "<h3>5. 📋 Verificar Logs do Servidor:</h3>";
        echo "<div style='background: #fff3cd; padding: 15px; border-left: 5px solid #ffc107;'>";
        echo "<h4>⚠️ Importante:</h4>";
        echo "<p>Verifique os logs do error_log do PHP para ver mensagens detalhadas do processamento das fotos.</p>";
        echo "<p>Os logs começam com '🔍 FOTOS DEBUG' e mostrarão exatamente onde está falhando.</p>";
        echo "<p><strong>Arquivo de log típico:</strong> /var/log/apache2/error.log ou similar</p>";
        echo "</div>";
        
    } catch (Exception $e) {
        echo "<div style='background: #ffe0e0; padding: 15px; border-left: 5px solid #dc3545;'>";
        echo "<h4>❌ Erro durante o teste:</h4>";
        echo "<p>{$e->getMessage()}</p>";
        echo "</div>";
    }
}

// Mostrar formulário de teste
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
    echo "<h3>2. 🚀 Executar Teste:</h3>";
    echo "<form method='post' style='background: #f8f9fa; padding: 20px; border: 1px solid #ddd; border-radius: 5px;'>";
    echo "<p><strong>Este teste irá:</strong></p>";
    echo "<ul>";
    echo "<li>Enviar um checklist completo com 2 fotos simuladas</li>";
    echo "<li>Usar a mesma API que o app Android usa</li>";
    echo "<li>Verificar se as fotos são salvas no banco e no disco</li>";
    echo "<li>Mostrar logs detalhados do processamento</li>";
    echo "</ul>";
    echo "<button type='submit' name='executar_teste' style='background: #007bff; color: white; padding: 10px 20px; border: none; border-radius: 5px; cursor: pointer;'>🧪 Executar Teste Completo</button>";
    echo "</form>";
}

echo "<h3>6. 🎯 Análise do Problema:</h3>";
echo "<div style='background: #f8f9fa; padding: 15px; border: 1px solid #dee2e6; border-radius: 5px;'>";
echo "<h4>Possíveis cenários:</h4>";
echo "<ul>";
echo "<li><strong>Se fotos forem salvas neste teste:</strong> Problema está no app Android não enviando fotos</li>";
echo "<li><strong>Se fotos não forem salvas:</strong> Problema está na API PHP</li>";
echo "<li><strong>Se logs mostrarem array vazio:</strong> App não está incluindo fotos no JSON</li>";
echo "<li><strong>Se logs mostrarem erro de decodificação:</strong> Problema no formato Base64</li>";
echo "<li><strong>Se logs mostrarem erro de arquivo:</strong> Problema de permissões ou diretório</li>";
echo "<li><strong>Se logs mostrarem erro de banco:</strong> Problema na estrutura da tabela ou SQL</li>";
echo "</ul>";
echo "</div>";
?> 
