<?php
// /install.php
session_start();
$step = isset($_GET['step']) ? (int)$_GET['step'] : 1;
$erro = '';
$app_name = "VoxCore CMS 2.3";
$dominio_atual = explode(':', $_SERVER['HTTP_HOST'])[0];

// --- NOVA FUNÇÃO DE OBTENÇÃO DA LICENÇA REMOTA (JSON) ---
function checkRemoteLicense() {
    $api_url = 'https://hrmenezes.com.br/api/v1/auth-engine.php';
    $opcoes = [
        'http' => [
            'method' => "GET",
            'header' => "Referer: http://" . $_SERVER['HTTP_HOST'] . "\r\n",
            'timeout' => 5 // Limite de 5 segundos para não travar o instalador
        ]
    ];
    $contexto = stream_context_create($opcoes);
    $resposta_api = @file_get_contents($api_url, false, $contexto);
    
    if ($resposta_api !== false) {
        $dados = json_decode($resposta_api, true);
        // Se a API retornou success no JSON, o domínio está liberado
        if (is_array($dados) && $dados['status'] === 'success') {
            return true;
        }
    }
    return false;
}

// Fase 1: Scanner
$pastas = ['img', 'audio', 'admin']; // 🛰️ Pasta 'video' removida do scanner conforme combinamos!
$pastas_ok = true;
foreach ($pastas as $p) { if (!is_dir($p) || !is_writable($p)) { $pastas_ok = false; } }
$tudo_ok = version_compare(PHP_VERSION, '7.4.0', '>=') && extension_loaded('pdo_mysql') && $pastas_ok;

// Fase 2: Licença (Agora 100% Automática, sem input de Serial)
if ($step == 2 && $_SERVER['REQUEST_METHOD'] == 'POST') {
    
    // Consulta a Target.dev em tempo real
    if (!checkRemoteLicense()) {
        $erro = "ACESSO NEGADO: Este domínio ({$dominio_atual}) não possui uma licença ativa no servidor central.";
    } else {
        try {
            // Testa o banco local e salva as credenciais
            $test_pdo = new PDO("mysql:host={$_POST['db_host']};dbname={$_POST['db_name']};charset=utf8mb4", $_POST['db_user'], $_POST['db_pass']);
            $_SESSION['db'] = ['host' => $_POST['db_host'], 'name' => $_POST['db_name'], 'user' => $_POST['db_user'], 'pass' => $_POST['db_pass']];
            header("Location: install.php?step=3");
            exit;
        } catch (PDOException $e) { $erro = "Erro de conexão com o banco de dados local."; }
    }
}

// Fase 3: Tabelas
if ($step == 3 && $_SERVER['REQUEST_METHOD'] == 'POST') {
    try {
        $db = $_SESSION['db'];
        $pdo = new PDO("mysql:host={$db['host']};dbname={$db['name']};charset=utf8mb4", $db['user'], $db['pass']);
        $sql = "CREATE TABLE IF NOT EXISTS usuarios (id INT AUTO_INCREMENT PRIMARY KEY, usuario VARCHAR(50), senha VARCHAR(255));
                CREATE TABLE IF NOT EXISTS configs (chave VARCHAR(50) PRIMARY KEY, valor TEXT);
                CREATE TABLE IF NOT EXISTS faqs (id INT AUTO_INCREMENT PRIMARY KEY, pergunta VARCHAR(255), resposta TEXT);
                CREATE TABLE IF NOT EXISTS categorias (id INT AUTO_INCREMENT PRIMARY KEY, nome VARCHAR(50), icone VARCHAR(50), ordem INT);
                CREATE TABLE IF NOT EXISTS galeria (id INT AUTO_INCREMENT PRIMARY KEY, categoria_id INT, imagem VARCHAR(255), nome_atriz_personagem VARCHAR(100), obras LONGTEXT);
                CREATE TABLE IF NOT EXISTS biografia (id INT AUTO_INCREMENT PRIMARY KEY, texto LONGTEXT);
                CREATE TABLE IF NOT EXISTS portfolio (id INT AUTO_INCREMENT PRIMARY KEY, texto LONGTEXT);";
        $pdo->exec($sql);
        header("Location: install.php?step=4");
        exit;
    } catch (PDOException $e) { $erro = "Erro estrutural ao criar tabelas."; }
}

// Fase 4: Gênese (Gravação de dados e DB.PHP Universal Dinâmico)
if ($step == 4 && $_SERVER['REQUEST_METHOD'] == 'POST') {
    try {
        $db = $_SESSION['db'];
        $pdo = new PDO("mysql:host={$db['host']};dbname={$db['name']};charset=utf8mb4", $db['user'], $db['pass']);
        
        $hash_admin = password_hash($_POST['admin_pass'], PASSWORD_DEFAULT);
        $pdo->prepare("INSERT INTO usuarios (usuario, senha) VALUES (?, ?)")->execute([$_POST['admin_user'], $hash_admin]);

        // 🛰️ CORES PADRÃO ADICIONADAS AQUI
        $configs = [
            'nome_artista'       => $_POST['nome_artista'],
            'home_bg'            => 'img/bg-home.jpg',
            'home_bg_mobile'     => 'img/bg-home-mobile.jpg',
            'favicon_publico'    => 'img/favicon_publico.png',
            'favicon_admin'      => 'img/favicon_admin.png',
            'botao_menu_label'   => 'Contato',
            'botao_menu_link'    => '#',
            'vr1_titulo'         => 'Voice Reel 1',
            'vr2_titulo'         => 'Voice Reel 2',
            'cor_header'         => '#000000', // Preto
            'cor_menu_fonte'     => '#ffffff', // Branco
            'cor_botao_especial' => '#808080'  // Cinza
        ];
        
        $stmt_cfg = $pdo->prepare("INSERT INTO configs (chave, valor) VALUES (?, ?)");
        foreach ($configs as $k => $v) { $stmt_cfg->execute([$k, $v]); }

        $pdo->prepare("INSERT INTO biografia (texto) VALUES (?)")->execute(["<p>Biografia de {$_POST['nome_artista']}</p>"]);
        $pdo->prepare("INSERT INTO portfolio (texto) VALUES (?)")->execute(["<p>Trabalhos de {$_POST['nome_artista']}</p>"]);

        // --- 4. GERAÇÃO DO DB.PHP (COM A NOVA SEGURANÇA UNIVERSAL VIA NOWDOC) ---
        $template_db = <<<'EOT'
<?php
// admin/db.php - ARQUIVO UNIVERSAL TARGET.DEV
if(session_status()===PHP_SESSION_NONE){session_start();}

if (!isset($_SESSION['VX_AUTH_DATA']) || $_SESSION['VX_AUTH_DATA']['status'] !== 'success') {
    $api_url = 'https://hrmenezes.com.br/api/v1/auth-engine.php';
    $opts = [
        'http' => [
            'method' => 'GET',
            'header' => 'Referer: http://' . $_SERVER['HTTP_HOST'] . "\r\n",
            'timeout' => 5
        ]
    ];
    $context = stream_context_create($opts);
    $resposta_api = @file_get_contents($api_url, false, $context);
    
    if ($resposta_api !== false) {
        $dados = json_decode($resposta_api, true);
        $_SESSION['VX_AUTH_DATA'] = is_array($dados) ? $dados : ['status' => 'error'];
    } else {
        $_SESSION['VX_AUTH_DATA'] = ['status' => 'error'];
    }
}

$auth = $_SESSION['VX_AUTH_DATA'];

if ($auth['status'] !== 'success') {
    die("<div style='text-align:center; margin-top:100px; font-family:sans-serif; color:#333;'>
            <h2>SISTEMA BLOQUEADO</h2>
            <p>Esta licença não foi encontrada ou foi suspensa no servidor central da Target.dev.</p>
            <p>Status: <strong>Acesso Negado</strong></p>
         </div>");
}

$s = $auth['sal'];
$serial_remoto = $auth['serial']; 

$h = explode(':',$_SERVER['HTTP_HOST'])[0];
$l = str_replace('www.','',strtolower($h));

$v = strtoupper(substr(md5($l.$s),0,4).'-'.substr(md5($l.$s),4,4).'-'.substr(md5($l.$s),8,4).'-'.substr(md5($l.$s),12,4));

define('VX_OK', ($serial_remoto === $v));

if(!VX_OK) { 
    die("<div style='text-align:center; margin-top:100px; font-family:sans-serif; color:#b91c1c;'>
            <h2>FALHA DE INTEGRIDADE</h2>
            <p>A chave de licença não corresponde a este domínio. Por favor, entre em contato com o suporte.</p>
         </div>"); 
}

$host = '{DB_HOST}';
$username = '{DB_USER}';
$password = '{DB_PASS}';
$dbname = '{DB_NAME}';

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("ERRO CRÍTICO DE CONEXÃO AO BANCO LOCAL");
}
?>
EOT;

        // Injeta as credenciais digitadas no instalador direto no template blindado
        $db_code = str_replace(
            ['{DB_HOST}', '{DB_USER}', '{DB_PASS}', '{DB_NAME}'], 
            [$db['host'], $db['user'], $db['pass'], $db['name']], 
            $template_db
        );
        
        file_put_contents('admin/db.php', $db_code);
        
        session_destroy();
        header("Location: install.php?step=5");
        exit;
    } catch (Exception $e) { $erro = "Erro na gravação final dos dados."; }
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <title>Instalação | <?= $app_name ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
    <style>
        body { background: #f1f5f9; font-family: 'Inter', sans-serif; display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 20px; }
        .install-card { background: white; border-radius: 15px; box-shadow: 0 10px 40px rgba(0,0,0,0.08); width: 100%; max-width: 650px; overflow: hidden; }
        .install-header { background: #0f172a; color: white; padding: 30px; text-align: center; }
        .install-body { padding: 40px; }
    </style>
</head>
<body>
<div class="install-card">
    <div class="install-header"><h2><i class="fas fa-satellite-dish text-info"></i> <?= $app_name ?></h2></div>
    <div class="install-body">
        <?php if ($erro): ?><div class="alert alert-danger"><?= $erro ?></div><?php endif; ?>

        <?php if ($step == 1): ?>
            <h4>Scanner de integridade</h4>
            <ul class="list-group mb-4 mt-3">
                <li class="list-group-item d-flex justify-content-between align-items-center">PHP 7.4+ <span><i class="fas <?= version_compare(PHP_VERSION, '7.4.0', '>=') ? 'fa-check-circle text-success' : 'fa-times-circle text-danger' ?>"></i></span></li>
                <li class="list-group-item d-flex justify-content-between align-items-center">PDO MySQL <span><i class="fas <?= extension_loaded('pdo_mysql') ? 'fa-check-circle text-success' : 'fa-times-circle text-danger' ?>"></i></span></li>
                <li class="list-group-item d-flex justify-content-between align-items-center">Pastas Escrita <span><i class="fas <?= $pastas_ok ? 'fa-check-circle text-success' : 'fa-times-circle text-danger' ?>"></i></span></li>
            </ul>
            <a href="install.php?step=2" class="btn btn-primary w-100 p-3 fw-bold <?= !$tudo_ok ? 'disabled' : '' ?>">CONTINUAR</a>

        <?php elseif ($step == 2): ?>
            <h4 class="mb-4">Conexão do Banco de Dados</h4>
            <form method="POST">
                <input type="text" name="db_host" class="form-control mb-3" value="localhost" placeholder="Host">
                <input type="text" name="db_name" class="form-control mb-3" placeholder="Nome do Banco" required>
                <div class="row">
                    <div class="col"><input type="text" name="db_user" class="form-control mb-3" placeholder="Usuário" required></div>
                    <div class="col"><input type="password" name="db_pass" class="form-control mb-3" placeholder="Senha"></div>
                </div>
                <hr>
                <div class="alert alert-info text-center">
                    <small class="d-block mb-1">Validação de Licença Automática para o domínio:</small>
                    <strong><?= $dominio_atual ?></strong>
                </div>
                <button type="submit" class="btn btn-primary w-100 p-3 fw-bold">VALIDAR E CONTINUAR</button>
            </form>

        <?php elseif ($step == 3): ?>
            <div class="text-center">
                <i class="fas fa-check-circle fa-4x text-success mb-3"></i>
                <h4>Licença Confirmada!</h4>
                <p class="text-muted">Conexão com o banco local e servidor central estabelecida.</p>
                <form method="POST"><button type="submit" class="btn btn-primary w-100 p-3 fw-bold mt-4">CRIAR ESTRUTURA</button></form>
            </div>

        <?php elseif ($step == 4): ?>
            <h4 class="mb-4">Configuração Admin</h4>
            <form method="POST">
                <input type="text" name="nome_artista" class="form-control mb-3" placeholder="Nome do Artista" required>
                <input type="text" name="admin_user" class="form-control mb-3" placeholder="Usuário Admin" required>
                <input type="password" name="admin_pass" class="form-control mb-3" placeholder="Senha" required minlength="6">
                <button type="submit" class="btn btn-success w-100 p-3 fw-bold">FINALIZAR INSTALAÇÃO</button>
            </form>

        <?php elseif ($step == 5): ?>
            <div class="text-center">
                <i class="fas fa-flag-checkered fa-4x text-success mb-3"></i>
                <h3>Instalação Concluída</h3>
                <p>Remova o arquivo <code>install.php</code> imediatamente por segurança.</p>
                <a href="admin/login.php" class="btn btn-primary w-100 p-3 fw-bold mt-3">ACESSAR PAINEL</a>
            </div>
        <?php endif; ?>
    </div>
</div>
</body>
</html>