<?php
include 'config/database.php';

header('Content-Type: text/html; charset=utf-8');
echo "<!DOCTYPE html><html><head><title>Investigar Upload de Fotos</title></head><body>";
echo "<h2>🔍 INVESTIGANDO: Por que fotos não são salvas</h2>";

try {
    $pdo = conectarBanco();
    
    // 1. VERIFICAR ENDPOINTS QUE DEVERIAM PROCESSAR FOTOS
    echo "<h3>1. Procurando endpoints que processam fotos:</h3>";
    
    $endpointsComFotos = [
        'api-checklist-v3.php' => 'Endpoint principal de checklist',
        'api-simples-v2.php' => 'Endpoint de viagens',
        'upload-foto.php' => 'Endpoint específico de upload',
        'processar-fotos.php' => 'Processador de fotos'
    ];
    
    echo "<table border='1' cellpadding='5'>";
    echo "<tr><th>Arquivo</th><th>Descrição</th><th>Existe?</th></tr>";
    
    foreach ($endpointsComFotos as $arquivo => $descricao) {
        $existe = file_exists($arquivo);
        $status = $existe ? "✅ SIM" : "❌ NÃO";
        echo "<tr><td>$arquivo</td><td>$descricao</td><td>$status</td></tr>";
    }
    echo "</table>";
    
    // 2. ANALISAR api-checklist-v3.php (principal suspeito)
    echo "<h3>2. Analisando api-checklist-v3.php:</h3>";
    
    if (file_exists('api/relatorios/api-checklist-v3.php')) {
        $conteudo = file_get_contents('api/relatorios/api-checklist-v3.php');
        
        // Procurar por código relacionado a fotos
        $temUpload = strpos($conteudo, '$_FILES') !== false;
        $temFotoTabela = strpos($conteudo, 'checklist_fotos') !== false;
        $temBase64 = strpos($conteudo, 'base64') !== false;
        $temImagemProcessamento = strpos($conteudo, 'imagecreatefrom') !== false;
        
        echo "<p>📁 <strong>Análise do arquivo:</strong></p>";
        echo "<ul>";
        echo "<li>Processa \$_FILES: " . ($temUpload ? "✅ SIM" : "❌ NÃO") . "</li>";
        echo "<li>Acessa tabela checklist_fotos: " . ($temFotoTabela ? "✅ SIM" : "❌ NÃO") . "</li>";
        echo "<li>Processa base64: " . ($temBase64 ? "✅ SIM" : "❌ NÃO") . "</li>";
        echo "<li>Processamento de imagem: " . ($temImagemProcessamento ? "✅ SIM" : "❌ NÃO") . "</li>";
        echo "</ul>";
        
        // Mostrar partes relevantes do código
        if ($temFotoTabela) {
            echo "<h4>📝 Código que menciona checklist_fotos:</h4>";
            $linhas = explode("\n", $conteudo);
            $linhasRelevantes = [];
            
            foreach ($linhas as $num => $linha) {
                if (stripos($linha, 'checklist_fotos') !== false) {
                    $linhasRelevantes[] = ($num + 1) . ": " . trim($linha);
                }
            }
            
            if (!empty($linhasRelevantes)) {
                echo "<pre style='background: #f5f5f5; padding: 10px;'>";
                foreach ($linhasRelevantes as $linha) {
                    echo htmlspecialchars($linha) . "\n";
                }
                echo "</pre>";
            }
        }
        
        if ($temUpload) {
            echo "<h4>📤 Código que processa uploads:</h4>";
            $linhas = explode("\n", $conteudo);
            $linhasRelevantes = [];
            
            foreach ($linhas as $num => $linha) {
                if (stripos($linha, '$_FILES') !== false || 
                    stripos($linha, 'move_uploaded_file') !== false ||
                    stripos($linha, 'upload') !== false) {
                    $linhasRelevantes[] = ($num + 1) . ": " . trim($linha);
                }
            }
            
            if (!empty($linhasRelevantes)) {
                echo "<pre style='background: #f5f5f5; padding: 10px;'>";
                foreach ($linhasRelevantes as $linha) {
                    echo htmlspecialchars($linha) . "\n";
                }
                echo "</pre>";
            }
        }
        
    } else {
        echo "<p style='color: red;'>❌ Arquivo api-checklist-v3.php não encontrado</p>";
    }
    
    // 3. VERIFICAR LOGS DE ERRO
    echo "<h3>3. Verificando configurações PHP para uploads:</h3>";
    
    echo "<p>📊 <strong>Configurações do PHP:</strong></p>";
    echo "<ul>";
    echo "<li>file_uploads: " . (ini_get('file_uploads') ? "✅ Habilitado" : "❌ Desabilitado") . "</li>";
    echo "<li>upload_max_filesize: " . ini_get('upload_max_filesize') . "</li>";
    echo "<li>post_max_size: " . ini_get('post_max_size') . "</li>";
    echo "<li>max_execution_time: " . ini_get('max_execution_time') . "s</li>";
    echo "<li>memory_limit: " . ini_get('memory_limit') . "</li>";
    echo "</ul>";
    
    // 4. SIMULAR REQUEST COM FOTO
    echo "<h3>4. Como o app deveria enviar fotos:</h3>";
    
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<h4>📱 PROCESSO ESPERADO:</h4>";
    echo "<ol>";
    echo "<li><strong>App captura foto</strong> (câmera ou galeria)</li>";
    echo "<li><strong>Converte para base64</strong> ou prepara multipart</li>";
    echo "<li><strong>Envia via POST</strong> para endpoint de checklist</li>";
    echo "<li><strong>API processa</strong> e salva na tabela checklist_fotos</li>";
    echo "<li><strong>Arquivo salvo</strong> no diretório uploads/checklist-fotos/</li>";
    echo "</ol>";
    echo "</div>";
    
    // 5. TESTE MANUAL DE UPLOAD
    echo "<h3>5. Teste manual de upload:</h3>";
    
    echo "<form method='POST' enctype='multipart/form-data' style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<h4>🧪 TESTE DE UPLOAD:</h4>";
    echo "<p>Checklist ID: <input type='number' name='checklist_id' value='123' required></p>";
    echo "<p>Arquivo: <input type='file' name='foto' accept='image/*' required></p>";
    echo "<p><input type='submit' name='testar_upload' value='Testar Upload'></p>";
    echo "</form>";
    
    // Processar teste de upload
    if (isset($_POST['testar_upload']) && isset($_FILES['foto'])) {
        echo "<h4>📤 Resultado do teste:</h4>";
        
        $checklistId = $_POST['checklist_id'];
        $arquivo = $_FILES['foto'];
        
        echo "<p><strong>Dados recebidos:</strong></p>";
        echo "<pre>" . print_r($arquivo, true) . "</pre>";
        
        if ($arquivo['error'] === UPLOAD_ERR_OK) {
            $nomeArquivo = "teste_" . time() . "_" . basename($arquivo['name']);
            $caminhoDestino = "uploads/checklist-fotos/" . $nomeArquivo;
            
            if (move_uploaded_file($arquivo['tmp_name'], $caminhoDestino)) {
                echo "<p style='color: green;'>✅ Arquivo salvo em: $caminhoDestino</p>";
                
                // Inserir na tabela
                $stmt = $pdo->prepare("
                    INSERT INTO checklist_fotos (checklist_id, nome_arquivo, caminho_arquivo, data_upload) 
                    VALUES (?, ?, ?, NOW())
                ");
                
                if ($stmt->execute([$checklistId, $nomeArquivo, $caminhoDestino])) {
                    $novoId = $pdo->lastInsertId();
                    echo "<p style='color: green;'>✅ Registro inserido na tabela - ID: $novoId</p>";
                    echo "<p>🎉 <strong>UPLOAD FUNCIONOU!</strong> O problema está no app/endpoint.</p>";
                } else {
                    echo "<p style='color: red;'>❌ Erro ao inserir na tabela</p>";
                }
            } else {
                echo "<p style='color: red;'>❌ Erro ao mover arquivo</p>";
            }
        } else {
            echo "<p style='color: red;'>❌ Erro no upload: " . $arquivo['error'] . "</p>";
        }
    }
    
    // 6. PRÓXIMOS PASSOS
    echo "<h3>6. Plano de ação:</h3>";
    
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<h4>🎯 PRÓXIMOS PASSOS:</h4>";
    echo "<ol>";
    echo "<li><strong>✅ Sistema de upload funciona</strong> (teste manual OK)</li>";
    echo "<li><strong>🔍 Verificar endpoint</strong> que app realmente usa</li>";
    echo "<li><strong>📱 Log no app</strong> - verificar se fotos estão sendo enviadas</li>";
    echo "<li><strong>📊 Log no servidor</strong> - ver se requests chegam</li>";
    echo "<li><strong>🐛 Debug do api-checklist-v3.php</strong> - adicionar logs</li>";
    echo "</ol>";
    echo "</div>";
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "</body></html>";
?> 
