<?php
// /upgrade.php - Patch de Atualização para VoxCore CMS 2.3
require 'admin/db.php'; // Usa a conexão existente da Miriam!

echo "<h3>Iniciando Terraformação de Atualização...</h3>";

try {
    // 1. Cria a nova tabela de Categorias (Seções)
    $pdo->exec("CREATE TABLE IF NOT EXISTS categorias (
        id INT AUTO_INCREMENT PRIMARY KEY,
        nome VARCHAR(50) NOT NULL,
        icone VARCHAR(50) DEFAULT 'fas fa-star',
        ordem INT DEFAULT 0
    )");
    echo "Tabela 'categorias' verificada/criada.<br>";

    // 2. Insere as categorias padrão caso a tabela esteja vazia
    $cats = $pdo->query("SELECT COUNT(*) FROM categorias")->fetchColumn();
    if ($cats == 0) {
        $categorias_padrao = [
            ['Filmes', 'fas fa-ticket-alt', 1],
            ['Animações', 'fas fa-film', 2],
            ['Séries', 'fas fa-tv', 3],
            ['TV', 'fas fa-pencil-alt', 4],
            ['Games', 'fas fa-gamepad', 5]
        ];
        $stmt_cat = $pdo->prepare("INSERT INTO categorias (nome, icone, ordem) VALUES (?, ?, ?)");
        foreach ($categorias_padrao as $cat) { $stmt_cat->execute($cat); }
        echo "Seções padrão injetadas.<br>";
    }

    // 3. Adiciona a coluna 'categoria_id' na galeria existente (se não existir)
    $col_exists = $pdo->query("SHOW COLUMNS FROM galeria LIKE 'categoria_id'")->fetch();
    if (!$col_exists) {
        $pdo->exec("ALTER TABLE galeria ADD categoria_id INT AFTER id");
        echo "Coluna 'categoria_id' acoplada à galeria.<br>";
        
        // 4. MÁGICA: Converte os nomes antigos de categorias para os novos IDs relacionais
        $pdo->exec("UPDATE galeria SET categoria_id = (SELECT id FROM categorias WHERE categorias.nome = galeria.categoria LIMIT 1)");
        echo "Migração de dados antigos realizada com sucesso! Nenhum card perdido.<br>";
    } else {
        echo "Os cards já estão no novo formato relacional.<br>";
    }

    // 5. Injeta as novas chaves de configuração (Favicons e Mídias) sem apagar as antigas
    $novas_configs = [
        'vr1_titulo' => 'Voice Reel 1', 'vr1_audio' => 'audio/placeholder.mp3',
        'vr2_titulo' => 'Voice Reel 2', 'vr2_audio' => 'audio/placeholder.mp3',
        'video_destaque' => 'video/placeholder.mp4',
        'favicon_publico' => 'img/favicon_publico.png', 'favicon_admin' => 'img/favicon_admin.png'
    ];
    // INSERT IGNORE garante que se a chave já existir, ele não faz nada (não sobrescreve)
    $stmt_cfg = $pdo->prepare("INSERT IGNORE INTO configs (chave, valor) VALUES (?, ?)");
    foreach ($novas_configs as $c => $v) {
        $stmt_cfg->execute([$c, $v]);
    }
    echo "Novas chaves de configuração injetadas.<br>";

    echo "<h2 style='color: green;'>Upgrade Finalizado com Sucesso Total! 🚀</h2>";
    echo "<p><strong>ATENÇÃO:</strong> Por favor, delete este arquivo <code>upgrade.php</code> do servidor agora.</p>";

} catch (PDOException $e) {
    echo "<h3 style='color: red;'>Erro no Upgrade: " . $e->getMessage() . "</h3>";
}
?>