<?php
// Corrigir estrutura da tabela checklist_fotos
echo "<h1>🔧 Corrigindo Tabela checklist_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 estrutura atual
    echo "<h2>📋 Estrutura Atual da Tabela checklist_fotos:</h2>";
    $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 campos que faltam
    $camposNecessarios = [
        'base64_data' => 'TEXT',
        'enviado_servidor' => 'TINYINT(1) DEFAULT 1',
        'updated_at' => 'TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP'
    ];
    
    $camposExistentes = array_column($colunas, 'Field');
    
    echo "<h2>🔧 Adicionando Campos Faltantes:</h2>";
    
    foreach ($camposNecessarios as $campo => $tipo) {
        if (!in_array($campo, $camposExistentes)) {
            $sql = "ALTER TABLE checklist_fotos ADD COLUMN $campo $tipo";
            try {
                $pdo->exec($sql);
                echo "<p style='color: green;'>✅ Campo '$campo' adicionado com sucesso!</p>";
            } catch (Exception $e) {
                echo "<p style='color: red;'>❌ Erro ao adicionar campo '$campo': " . $e->getMessage() . "</p>";
            }
        } else {
            echo "<p style='color: blue;'>ℹ️ Campo '$campo' já existe</p>";
        }
    }
    
    // Verificar estrutura final
    echo "<h2>📋 Estrutura Final da Tabela checklist_fotos:</h2>";
    $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>";
    
    // Teste de inserção
    echo "<h2>🧪 Teste de Inserção de Foto:</h2>";
    
         $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);
    $resultado = $stmt->execute([
        3, // checklist_id (usando o ID do teste anterior)
        'teste_item', // item_id
        'teste.jpg', // nome_arquivo
        'uploads/checklist-fotos/teste.jpg', // caminho_local
        'Teste de foto', // descricao_problema
        'dGVzdGU=', // base64_data (teste em base64)
        5, // tamanho_arquivo
        'image/jpeg', // tipo_mime
        1, // enviado_servidor
        date('Y-m-d H:i:s') // created_at
    ]);
    
    if ($resultado) {
        $id = $pdo->lastInsertId();
        echo "<p style='color: green;'>✅ Inserção de foto de teste bem-sucedida! ID: $id</p>";
        
        // Remover o registro de teste
        $stmt = $pdo->prepare("DELETE FROM checklist_fotos WHERE id = ?");
        $stmt->execute([$id]);
        echo "<p style='color: blue;'>🗑️ Registro de teste removido</p>";
    } else {
        echo "<p style='color: red;'>❌ Falha na inserção de foto de teste</p>";
    }
    
} catch (PDOException $e) {
    echo "<p style='color: red;'>❌ Erro de conexão: " . $e->getMessage() . "</p>";
} catch (Exception $e) {
    echo "<p style='color: red;'>❌ Erro geral: " . $e->getMessage() . "</p>";
}

echo "<h2>🎯 Próximos Passos:</h2>";
echo "<p><a href='teste-checklist-direto.php' target='_blank'>🧪 Testar API novamente</a></p>";
echo "<p><a href='verificar-checklist-ultimo.php' target='_blank'>🔍 Verificar se as fotos foram salvas</a></p>";
?>
