<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);
require_once 'config/db.php';

echo "<h2>Iniciando Correção do Banco de Dados</h2>";

try {
    // 1. Criar tabela curso_state se não existir
    echo "Verificando tabela curso_state...<br>";
    $sql = "CREATE TABLE IF NOT EXISTS curso_state (
        curso_id INT PRIMARY KEY,
        state_json LONGTEXT NOT NULL,
        atualizado_em TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
        FOREIGN KEY (curso_id) REFERENCES cursos(id) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;";
    
    $pdo->exec($sql);
    echo "Tabela curso_state verificada/criada com sucesso!<br>";

    // 2. Verificar se a tabela cursos existe (necessária para a FK)
    echo "Verificando tabela cursos...<br>";
    $pdo->query("SELECT 1 FROM cursos LIMIT 1");
    echo "Tabela cursos OK!<br>";

    // 3. Adicionar colunas pdi/ppc se faltarem
    echo "Verificando colunas pdi/ppc em cursos...<br>";
    try {
        $pdo->exec("ALTER TABLE cursos ADD COLUMN pdi VARCHAR(255) NULL");
        echo "Coluna pdi adicionada.<br>";
    } catch (Exception $e) { echo "Coluna pdi já existe ou erro ignorado.<br>"; }

    try {
        $pdo->exec("ALTER TABLE cursos ADD COLUMN ppc VARCHAR(255) NULL");
        echo "Coluna ppc adicionada.<br>";
    } catch (Exception $e) { echo "Coluna ppc já existe ou erro ignorado.<br>"; }

    echo "<br><h3 style='color: green;'>Tudo pronto! O sistema deve voltar a funcionar.</h3>";
    echo "<p><a href='index.php'>Clique aqui para ir ao Painel</a></p>";

} catch (PDOException $e) {
    echo "<h3 style='color: red;'>Erro no Banco de Dados:</h3>";
    echo "<pre>" . $e->getMessage() . "</pre>";
    echo "<p>Certifique-se de que o banco de dados <b>asbd_basemec</b> existe no seu MySQL local.</p>";
}
