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

echo "<h2>🛠️ Criação da Tabela Checklist Veículo (Versão Corrigida)</h2>";
echo "<style>
    .success { color: green; font-weight: bold; }
    .error { color: red; font-weight: bold; }
    .info { color: blue; }
    table { border-collapse: collapse; width: 100%; margin: 10px 0; }
    th, td { border: 1px solid #ddd; padding: 8px; text-align: left; }
    th { background-color: #f2f2f2; }
    pre { background: #f5f5f5; padding: 10px; border-radius: 5px; }
</style>";

try {
    $conn = getConnection();
    
    // SQL corrigido (sem foreign keys que estavam causando problema)
    $sqlCommands = [
        // 1. Remover tabela se existir
        "DROP TABLE IF EXISTS checklist_veiculo",
        
        // 2. Criar tabela sem foreign keys
        "CREATE TABLE checklist_veiculo (
            id BIGINT AUTO_INCREMENT PRIMARY KEY,
            viagem_id BIGINT NULL COMMENT 'ID da viagem relacionada (pode ser NULL para checklists independentes)',
            veiculo_id BIGINT NOT NULL COMMENT 'ID do veículo (obrigatório)',
            data_hora DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
            itens_json TEXT NOT NULL COMMENT 'JSON com todos os itens do checklist e seus status',
            observacoes_gerais TEXT DEFAULT NULL,
            sincronizado BOOLEAN DEFAULT FALSE,
            created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
            updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
            
            INDEX idx_viagem_id (viagem_id),
            INDEX idx_veiculo_id (veiculo_id),
            INDEX idx_data_hora (data_hora),
            INDEX idx_sincronizado (sincronizado)
            
        ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci
        COMMENT='Armazena checklists de veículos realizados após viagens'",
        
        // 3. Inserir dados de teste
        "INSERT INTO checklist_veiculo (
            viagem_id, 
            veiculo_id, 
            itens_json, 
            observacoes_gerais
        ) VALUES (
            NULL,
            1,
            '[{\"id\":\"docs_documentos\",\"nome\":\"Documentos do Veículo\",\"categoria\":\"Documentos e Cartões\",\"status\":\"OK\",\"observacao\":\"\"},{\"id\":\"docs_vale_card\",\"nome\":\"Cartão Vale Card\",\"categoria\":\"Documentos e Cartões\",\"status\":\"OK\",\"observacao\":\"\"}]',
            'Teste de criação da tabela - checklist exemplo'
        )"
    ];
    
    echo "<h3>📝 Executando comandos SQL:</h3>";
    
    foreach ($sqlCommands as $index => $sql) {
        echo "<div class='info'><strong>Comando " . ($index + 1) . ":</strong></div>";
        echo "<pre>" . htmlspecialchars($sql) . "</pre>";
        
        try {
            $stmt = $conn->prepare($sql);
            $result = $stmt->execute();
            
            if ($result) {
                echo "<div class='success'>✅ Executado com sucesso!</div>";
            } else {
                echo "<div class='error'>❌ Falha na execução</div>";
            }
        } catch (Exception $e) {
            echo "<div class='error'>❌ Erro: " . $e->getMessage() . "</div>";
        }
        echo "<hr>";
    }
    
    // Verificar se a tabela foi criada
    echo "<h3>🔍 Verificação da Tabela Criada:</h3>";
    
    // Mostrar estrutura
    echo "<h4>📊 Estrutura da tabela:</h4>";
    $stmt = $conn->query("DESCRIBE checklist_veiculo");
    $columns = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    echo "<table>";
    echo "<tr><th>Campo</th><th>Tipo</th><th>Null</th><th>Key</th><th>Default</th><th>Extra</th></tr>";
    foreach ($columns as $col) {
        echo "<tr>";
        echo "<td>{$col['Field']}</td>";
        echo "<td>{$col['Type']}</td>";
        echo "<td>{$col['Null']}</td>";
        echo "<td>{$col['Key']}</td>";
        echo "<td>{$col['Default']}</td>";
        echo "<td>{$col['Extra']}</td>";
        echo "</tr>";
    }
    echo "</table>";
    
    // Mostrar dados de teste
    echo "<h4>📋 Dados de teste inseridos:</h4>";
    $stmt = $conn->query("SELECT * FROM checklist_veiculo LIMIT 5");
    $data = $stmt->fetchAll(PDO::FETCH_ASSOC);
    
    if (!empty($data)) {
        echo "<table>";
        echo "<tr><th>ID</th><th>Viagem ID</th><th>Veículo ID</th><th>Data/Hora</th><th>Observações</th><th>Sincronizado</th></tr>";
        foreach ($data as $row) {
            echo "<tr>";
            echo "<td>{$row['id']}</td>";
            echo "<td>" . ($row['viagem_id'] ?: 'NULL') . "</td>";
            echo "<td>{$row['veiculo_id']}</td>";
            echo "<td>{$row['data_hora']}</td>";
            echo "<td>{$row['observacoes_gerais']}</td>";
            echo "<td>" . ($row['sincronizado'] ? 'Sim' : 'Não') . "</td>";
            echo "</tr>";
        }
        echo "</table>";
    }
    
    // Contar registros
    $stmt = $conn->query("SELECT COUNT(*) as total FROM checklist_veiculo");
    $count = $stmt->fetch(PDO::FETCH_ASSOC);
    echo "<div class='success'>✅ Total de registros na tabela: {$count['total']}</div>";
    
    echo "<h3>🎉 Tabela checklist_veiculo criada com sucesso!</h3>";
    echo "<p><strong>Próximos passos:</strong></p>";
    echo "<ul>";
    echo "<li>A tabela está pronta para receber dados do app Android</li>";
    echo "<li>As foreign keys foram removidas para evitar problemas de dependência</li>";
    echo "<li>Você pode usar a API em <code>api-simples-v2.php</code> endpoint <code>checklist_veiculo</code></li>";
    echo "<li>O dashboard está disponível em <code>checklist-dashboard.html</code></li>";
    echo "</ul>";
    
} catch (Exception $e) {
    echo "<div class='error'>❌ Erro geral: " . $e->getMessage() . "</div>";
}
?> 
