<?php
// Teste específico para fotos
echo "<h1>📸 Teste Específico - Processamento de Fotos</h1>";

// Configuração direta do banco
$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 estabelecida!</p>";
    
    // Verificar se a tabela checklist_fotos existe
    echo "<h2>📋 Verificação da Tabela checklist_fotos:</h2>";
    $stmt = $pdo->query("SHOW TABLES LIKE 'checklist_fotos'");
    if ($stmt->rowCount() > 0) {
        echo "<p style='color: green;'>✅ Tabela checklist_fotos existe</p>";
        
        // Verificar estrutura
        echo "<h3>📊 Estrutura da tabela:</h3>";
        $stmt = $pdo->query("DESCRIBE checklist_fotos");
        $colunas = $stmt->fetchAll(PDO::FETCH_ASSOC);
        
        echo "<table border='1' style='border-collapse: collapse;'>";
        echo "<tr><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']}</td>";
            echo "</tr>";
        }
        echo "</table>";
        
        // Verificar se há fotos salvas
        echo "<h3>📸 Fotos salvas no banco:</h3>";
        $stmt = $pdo->query("SELECT COUNT(*) as total FROM checklist_fotos");
        $total = $stmt->fetch(PDO::FETCH_ASSOC)['total'];
        echo "<p><strong>Total de fotos:</strong> $total</p>";
        
        if ($total > 0) {
            echo "<h4>Últimas fotos salvas:</h4>";
            $stmt = $pdo->query("SELECT * FROM checklist_fotos ORDER BY id DESC LIMIT 5");
            $fotos = $stmt->fetchAll(PDO::FETCH_ASSOC);
            
            echo "<table border='1' style='border-collapse: collapse;'>";
            echo "<tr><th>ID</th><th>Checklist ID</th><th>Item ID</th><th>Nome Arquivo</th><th>Tamanho</th><th>Enviado</th></tr>";
            foreach ($fotos as $foto) {
                echo "<tr>";
                echo "<td>{$foto['id']}</td>";
                echo "<td>{$foto['checklist_id']}</td>";
                echo "<td>{$foto['item_id']}</td>";
                echo "<td>{$foto['nome_arquivo']}</td>";
                echo "<td>{$foto['tamanho_arquivo']}</td>";
                echo "<td>" . ($foto['enviado_servidor'] ? 'Sim' : 'Não') . "</td>";
                echo "</tr>";
            }
            echo "</table>";
        }
        
        // Teste de inserção de foto
        echo "<h3>🧪 Teste de Inserção de Foto:</h3>";
        
        // Primeiro, verificar se há um checklist para associar
        $stmt = $pdo->query("SELECT id FROM checklist_veiculo ORDER BY id DESC LIMIT 1");
        $checklist = $stmt->fetch(PDO::FETCH_ASSOC);
        
        if ($checklist) {
            $checklistId = $checklist['id'];
            echo "<p>Usando checklist ID: $checklistId</p>";
            
            // Dados de teste
            $nomeArquivo = "teste_foto_" . time() . ".jpg";
            $caminhoArquivo = "uploads/checklist-fotos/" . $nomeArquivo;
            $base64Data = "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mNkYPhfDwAChwGA60e6kgAAAABJRU5ErkJggg==";
            
            try {
                $sql = "INSERT INTO checklist_fotos (
                    checklist_id, item_id, nome_arquivo, caminho_arquivo, 
                    descricao_problema, base64_data, tamanho_arquivo, 
                    tipo_mime, enviado_servidor, created_at
                ) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
                
                $stmt = $pdo->prepare($sql);
                $stmt->execute([
                    $checklistId,
                    'teste_item',
                    $nomeArquivo,
                    $caminhoArquivo,
                    'Foto de teste',
                    $base64Data,
                    strlen(base64_decode($base64Data)),
                    'image/jpeg',
                    1,
                    date('Y-m-d H:i:s')
                ]);
                
                $fotoId = $pdo->lastInsertId();
                echo "<p style='color: green;'>✅ Foto de teste inserida com sucesso! ID: $fotoId</p>";
                
                // Remover foto de teste
                $stmt = $pdo->prepare("DELETE FROM checklist_fotos WHERE id = ?");
                $stmt->execute([$fotoId]);
                echo "<p>🗑️ Foto de teste removida</p>";
                
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro ao inserir foto: " . $e->getMessage() . "</p>";
            }
        } else {
            echo "<p style='color: orange;'>⚠️ Nenhum checklist encontrado para teste</p>";
        }
        
    } else {
        echo "<p style='color: red;'>❌ Tabela checklist_fotos não existe!</p>";
    }
    
    // Verificar diretório de fotos
    echo "<h2>📁 Verificação do Diretório de Fotos:</h2>";
    $diretorioFotos = 'uploads/checklist-fotos';
    if (is_dir($diretorioFotos)) {
        echo "<p style='color: green;'>✅ Diretório $diretorioFotos existe</p>";
        
        $arquivos = scandir($diretorioFotos);
        $arquivosFotos = array_filter($arquivos, function($arquivo) {
            return $arquivo !== '.' && $arquivo !== '..' && pathinfo($arquivo, PATHINFO_EXTENSION) !== '';
        });
        
        echo "<p><strong>Arquivos no diretório:</strong> " . count($arquivosFotos) . "</p>";
        
        if (count($arquivosFotos) > 0) {
            echo "<h4>Últimos arquivos:</h4>";
            echo "<ul>";
            foreach (array_slice($arquivosFotos, -5) as $arquivo) {
                $caminhoCompleto = $diretorioFotos . '/' . $arquivo;
                $tamanho = filesize($caminhoCompleto);
                echo "<li>$arquivo ($tamanho bytes)</li>";
            }
            echo "</ul>";
        }
    } else {
        echo "<p style='color: red;'>❌ Diretório $diretorioFotos não existe</p>";
    }
    
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro: " . $e->getMessage() . "</p>";
}

echo "<h2>🎯 Status Final</h2>";
echo "<p>Teste de fotos concluído!</p>";
?>
