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

header('Content-Type: text/html; charset=utf-8');
echo "<!DOCTYPE html><html><head><title>Debug Fotos Checklist</title></head><body>";
echo "<h2>📷 DEBUG: Fotos de Checklist</h2>";

try {
    $pdo = conectarBanco();
    
    // 1. VERIFICAR ESTRUTURA DA TABELA checklist_fotos
    echo "<h3>1. Estrutura da tabela checklist_fotos:</h3>";
    
    $stmt = $pdo->query("DESCRIBE checklist_fotos");
    $colunas = $stmt->fetchAll();
    
    echo "<table border='1' style='border-collapse: collapse;'>";
    echo "<tr style='background: #f0f0f0;'><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th></tr>";
    
    foreach ($colunas as $coluna) {
        echo "<tr>";
        echo "<td>{$coluna['Field']}</td>";
        echo "<td>{$coluna['Type']}</td>";
        echo "<td>{$coluna['Null']}</td>";
        echo "<td>{$coluna['Key']}</td>";
        echo "<td>" . ($coluna['Default'] ?: 'NULL') . "</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // 2. VERIFICAR TOTAL DE FOTOS
    echo "<h3>2. Estatísticas de fotos:</h3>";
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM checklist_fotos");
    $totalFotos = $stmt->fetch()['total'];
    
    $stmt = $pdo->query("SELECT COUNT(*) as total FROM checklist_veiculo");
    $totalChecklists = $stmt->fetch()['total'];
    
    echo "<p><strong>Total de checklists:</strong> $totalChecklists</p>";
    echo "<p><strong>Total de fotos:</strong> $totalFotos</p>";
    
    if ($totalFotos == 0) {
        echo "<p style='color: red;'>❌ <strong>PROBLEMA CONFIRMADO:</strong> Nenhuma foto foi salva!</p>";
    } else {
        echo "<p style='color: green;'>✅ Há fotos salvas no sistema</p>";
    }
    
    // 3. VERIFICAR CHECKLISTS RECENTES
    echo "<h3>3. Checklists recentes (últimos 5):</h3>";
    
    $stmt = $pdo->query("
        SELECT 
            id, viagem_id, veiculo_id, tipo_veiculo, 
            data_hora, sincronizado,
            (SELECT COUNT(*) FROM checklist_fotos WHERE checklist_id = checklist_veiculo.id) as total_fotos
        FROM checklist_veiculo 
        ORDER BY id DESC 
        LIMIT 5
    ");
    $checklists = $stmt->fetchAll();
    
    if ($checklists) {
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr style='background: #f0f0f0;'><th>ID</th><th>Viagem</th><th>Veículo</th><th>Tipo</th><th>Data</th><th>Fotos</th><th>Status</th></tr>";
        
        foreach ($checklists as $check) {
            $statusFotos = ($check['total_fotos'] > 0) ? "✅ {$check['total_fotos']}" : "❌ 0";
            echo "<tr>";
            echo "<td>{$check['id']}</td>";
            echo "<td>{$check['viagem_id']}</td>";
            echo "<td>{$check['veiculo_id']}</td>";
            echo "<td>{$check['tipo_veiculo']}</td>";
            echo "<td>{$check['data_hora']}</td>";
            echo "<td>$statusFotos</td>";
            echo "<td>" . ($check['sincronizado'] ? '✅ Sync' : '❌ Não sync') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // 4. VERIFICAR DIRETÓRIO DE UPLOADS
    echo "<h3>4. Verificar diretório de uploads:</h3>";
    
    $diretorioBase = 'uploads/checklist-fotos';
    $caminhoCompleto = __DIR__ . '/' . $diretorioBase;
    
    echo "<p><strong>Caminho esperado:</strong> $caminhoCompleto</p>";
    
    if (file_exists($caminhoCompleto)) {
        echo "<p style='color: green;'>✅ Diretório existe</p>";
        
        // Listar subdiretórios (ano/mês)
        $subdirs = glob($caminhoCompleto . '/*', GLOB_ONLYDIR);
        if ($subdirs) {
            echo "<p><strong>Subdiretórios encontrados:</strong></p>";
            echo "<ul>";
            foreach ($subdirs as $subdir) {
                $nome = basename($subdir);
                $arquivos = glob($subdir . '/*');
                echo "<li>$nome (" . count($arquivos) . " arquivos)</li>";
            }
            echo "</ul>";
        } else {
            echo "<p>⚠️ Nenhum subdiretório encontrado</p>";
        }
    } else {
        echo "<p style='color: red;'>❌ <strong>PROBLEMA:</strong> Diretório não existe!</p>";
        echo "<p>🔧 <strong>Criando diretório:</strong></p>";
        
        if (mkdir($caminhoCompleto, 0755, true)) {
            echo "<p style='color: green;'>✅ Diretório criado com sucesso!</p>";
        } else {
            echo "<p style='color: red;'>❌ Falha ao criar diretório</p>";
        }
    }
    
    // 5. VERIFICAR PERMISSÕES
    echo "<h3>5. Verificar permissões:</h3>";
    
    if (file_exists($caminhoCompleto)) {
        $perms = substr(sprintf('%o', fileperms($caminhoCompleto)), -4);
        echo "<p><strong>Permissões atuais:</strong> $perms</p>";
        
        if (is_writable($caminhoCompleto)) {
            echo "<p style='color: green;'>✅ Diretório tem permissão de escrita</p>";
        } else {
            echo "<p style='color: red;'>❌ <strong>PROBLEMA:</strong> Sem permissão de escrita!</p>";
            echo "<p>🔧 Tente: <code>chmod 755 $caminhoCompleto</code></p>";
        }
    }
    
    // 6. VERIFICAR LOGS DE ERRO
    echo "<h3>6. Possíveis problemas:</h3>";
    
    echo "<div style='background: #fff3cd; padding: 15px; border-radius: 5px;'>";
    echo "<h4>⚠️ POSSÍVEIS CAUSAS DO PROBLEMA:</h4>";
    echo "<ol>";
    
    if ($totalFotos == 0) {
        echo "<li><strong>App não está enviando fotos:</strong> Verificar se o app está capturando e enviando as fotos na requisição</li>";
        echo "<li><strong>API não está processando:</strong> Função processarFotos() pode ter erro</li>";
        echo "<li><strong>Diretório sem permissão:</strong> Servidor web não consegue salvar arquivos</li>";
        echo "<li><strong>Foreign key constraint:</strong> checklist_id pode não estar sendo encontrado</li>";
    }
    
    echo "</ol>";
    echo "</div>";
    
    // 7. SUGESTÕES DE CORREÇÃO
    echo "<h3>7. Próximos passos:</h3>";
    
    echo "<div style='background: #e8f5e8; padding: 15px; border-radius: 5px;'>";
    echo "<h4>🔧 AÇÕES PARA RESOLVER:</h4>";
    echo "<ol>";
    echo "<li><strong>Verificar logs:</strong> Consultar error_log() do PHP para erros durante upload</li>";
    echo "<li><strong>Testar upload manual:</strong> Criar teste direto da função processarFotos()</li>";
    echo "<li><strong>Verificar app:</strong> Confirmar se fotos estão sendo enviadas no JSON</li>";
    echo "<li><strong>Permissões:</strong> Garantir que diretório de upload é gravável</li>";
    echo "</ol>";
    echo "</div>";
    
    // 8. TESTE SIMPLES DE INSERÇÃO
    echo "<h3>8. Teste de inserção manual:</h3>";
    
    if ($checklists) {
        $checklistTeste = $checklists[0]['id'];
        
        echo "<p>Testando inserção para checklist ID: $checklistTeste</p>";
        
        try {
            $sql = "INSERT INTO checklist_fotos 
                    (checklist_id, item_id, nome_arquivo, caminho_arquivo, descricao_problema, tamanho_arquivo, tipo_mime) 
                    VALUES (?, 'teste', 'teste.jpg', '/tmp/teste.jpg', 'Teste de inserção', 1024, 'image/jpeg')";
            
            $stmt = $pdo->prepare($sql);
            $stmt->execute([$checklistTeste]);
            
            $fotoId = $pdo->lastInsertId();
            
            if ($fotoId) {
                echo "<p style='color: green;'>✅ <strong>SUCESSO!</strong> Inserção manual funcionou - ID: $fotoId</p>";
                
                // Remover o teste
                $pdo->prepare("DELETE FROM checklist_fotos WHERE id = ?")->execute([$fotoId]);
                echo "<p>🧹 Registro de teste removido</p>";
            }
            
        } catch (Exception $e) {
            echo "<p style='color: red;'>❌ <strong>ERRO na inserção:</strong> {$e->getMessage()}</p>";
        }
    }
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}

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