<?php
session_start();
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Caminho absoluto apontando para dentro de revenda
$json_file = __DIR__ . '/revenda/dados_planos.json';

// Se o arquivo sumir ou o servidor bloquear a leitura, o script para e avisa
if (!file_exists($json_file)) {
    die("<div style='background:#fee2e2;color:#b91c1c;padding:25px;margin:30px;border-radius:8px;font-family:sans-serif;border:1px solid #fca5a5;'>
            <h3 style='margin-bottom:10px;'>🚨 Erro de Localização de Arquivo</h3>
            O painel administrativo não conseguiu encontrar o arquivo <code>/revenda/dados_planos.json</code>.
         </div>");
}

$conteudo = file_get_contents($json_file);
$dados = json_decode($conteudo, true);

if (!is_array($dados) || !isset($dados['planos'])) {
    die("<div style='background:#fee2e2;color:#b91c1c;padding:25px;margin:30px;border-radius:8px;font-family:sans-serif;border:1px solid #fca5a5;'>
            <h3 style='margin-bottom:10px;'>⚠️ Erro de Leitura JSON</h3>
            O arquivo foi encontrado, mas o formato dos dados está corrompido ou vazio. Cole o código limpo no dados_planos.json novamente.
         </div>");
}

$mensagem_status = "";
$status_tipo = "";

if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['action_salvar'])) {
    $dados['seu_whatsapp'] = trim($_POST['seu_whatsapp'] ?? '');
    $dados['texto_botao_upgrade'] = trim($_POST['texto_botao_upgrade'] ?? 'Fazer Upgrade');
    $dados['mensagem_predefinida'] = trim($_POST['mensagem_predefinida'] ?? '');
    
    foreach ($dados['planos'] as $id => $plano) {
        if (isset($_POST['planos'][$id])) {
            $dados['planos'][$id]['nome'] = trim($_POST['planos'][$id]['nome'] ?? '');
            $dados['planos'][$id]['preco'] = trim($_POST['planos'][$id]['preco'] ?? '');
            $dados['planos'][$id]['macs'] = trim($_POST['planos'][$id]['macs'] ?? '');
            $dados['planos'][$id]['popular'] = isset($_POST['planos'][$id]['popular']) ? true : false;
            
            // Correção Avançada: Aceita qualquer quebra de linha (\r\n ou \n) sem quebrar o array JSON
            $recursos_raw = $_POST['planos'][$id]['recursos'] ?? '';
            $recursos_array = preg_split('/\r\n|\r|\n/', $recursos_raw);
            $recursos_array = array_filter(array_map('trim', $recursos_array));
            
            $dados['planos'][$id]['recursos'] = array_values(array_map('strip_tags', $recursos_array));
        }
    }
    
    // Salva o JSON forçando formatação limpa e estável
    if (file_put_contents($json_file, json_encode($dados, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE))) {
        $mensagem_status = "Configurações sincronizadas e salvas com sucesso!";
        $status_tipo = "success";
    } else {
        $mensagem_status = "Erro crítico de permissão: O servidor não permitiu gravar no arquivo JSON.";
        $status_tipo = "error";
    }
}
?>
<!DOCTYPE html>
<html lang="pt-BR">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Enterprise Plan Manager - Admin</title>
    <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap" rel="stylesheet">
    <link href="https://fonts.googleapis.com/icon?family=Material+Icons+Round" rel="stylesheet">
    <style>
        :root {
            --primary: #00D4FF;
            --primary-dark: #0099CC;
            --accent: #00FF88;
            --bg: #0A0F1C;
            --surface: #141B2D;
            --surface-light: #1F293D;
            --text-main: #FFFFFF;
            --text-secondary: #94A3B8;
            --border: rgba(255, 255, 255, 0.08);
            --success: #00FF88;
            --error: #FF6B9D;
        }

        * { margin: 0; padding: 0; box-sizing: border-box; font-family: 'Inter', sans-serif; }
        body { background: linear-gradient(135deg, #0A0F1C 0%, #151B2D 100%); color: var(--text-main); min-height: 100vh; padding: 40px 20px; }
        .wrapper { max-width: 1100px; margin: 0 auto; }
        
        .header-panel { display: flex; align-items: center; justify-content: space-between; background: var(--surface); padding: 20px 30px; border-radius: 16px; border: 1px solid var(--border); margin-bottom: 30px; box-shadow: 0 8px 32px rgba(0,0,0,0.2); }
        .header-title-group { display: flex; align-items: center; gap: 15px; }
        .header-icon { font-size: 32px; background: linear-gradient(135deg, var(--primary), var(--accent)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }
        .header-panel h1 { font-size: 1.4rem; font-weight: 700; letter-spacing: -0.5px; }
        .header-panel p { color: var(--text-secondary); font-size: 0.85rem; margin-top: 2px; }

        .status-toast { padding: 16px 20px; border-radius: 12px; margin-bottom: 25px; font-weight: 600; font-size: 0.95rem; display: flex; align-items: center; gap: 12px; animation: slideIn 0.3s ease; }
        .status-toast.success { background: rgba(0, 255, 136, 0.1); color: var(--success); border: 1px solid rgba(0, 255, 136, 0.2); }
        .status-toast.error { background: rgba(255, 107, 157, 0.1); color: var(--error); border: 1px solid rgba(255, 107, 157, 0.2); }

        .section-title { font-size: 1.1rem; font-weight: 600; color: var(--primary); margin-bottom: 20px; display: flex; align-items: center; gap: 8px; }
        .card-global { background: var(--surface); padding: 30px; border-radius: 16px; border: 1px solid var(--border); margin-bottom: 30px; box-shadow: 0 4px 20px rgba(0,0,0,0.15); }
        
        .flex-row { display: grid; grid-template-columns: 1fr; gap: 20px; }
        @media(min-width: 768px) { .flex-row { grid-template-columns: 1fr 1fr; } .triple-row { grid-template-columns: 1fr 1fr 2fr; } }

        .form-group { margin-bottom: 20px; position: relative; }
        label { display: block; font-weight: 600; font-size: 0.85rem; color: var(--text-secondary); margin-bottom: 8px; text-transform: uppercase; letter-spacing: 0.5px; }
        
        input[type="text"], textarea { width: 100%; background: var(--surface-light); border: 1px solid var(--border); padding: 12px 16px; border-radius: 10px; font-size: 0.95rem; color: var(--text-main); transition: all 0.25s ease; }
        input[type="text"]:focus, textarea:focus { border-color: var(--primary); outline: none; box-shadow: 0 0 12px rgba(0, 212, 255, 0.2); background: #253147; }
        
        textarea { height: 130px; resize: vertical; line-height: 1.6; font-size: 0.9rem; }
        .hint { font-size: 0.8rem; color: var(--text-secondary); margin-top: 6px; display: flex; align-items: center; gap: 4px; }

        .grid-planos { display: grid; grid-template-columns: 1fr; gap: 25px; }
        @media(min-width: 900px) { .grid-planos { grid-template-columns: repeat(3, 1fr); } }
        .card-plano { background: var(--surface); border: 1px solid var(--border); border-radius: 16px; padding: 25px; transition: all 0.3s ease; display: flex; flex-direction: column; }
        .card-plano:hover { border-color: var(--primary); transform: translateY(-3px); box-shadow: 0 8px 24px rgba(0, 212, 255, 0.1); }
        .card-plano.popular-active { border: 2px solid var(--accent); box-shadow: 0 8px 24px rgba(0, 255, 136, 0.08); }
        .card-plano h3 { margin-bottom: 20px; font-size: 1.15rem; color: #fff; border-bottom: 1px solid var(--border); padding-bottom: 10px; display: flex; align-items: center; justify-content: space-between; }
        
        .switch-wrapper { display: flex; align-items: center; justify-content: space-between; background: rgba(255,255,255,0.03); padding: 12px; border-radius: 10px; border: 1px solid var(--border); margin-top: auto; }
        .switch-label { font-size: 0.85rem; font-weight: 500; color: var(--text-main); }
        .switch { position: relative; display: inline-block; width: 44px; height: 24px; }
        .switch input { opacity: 0; width: 0; height: 0; }
        .slider { position: absolute; cursor: pointer; top: 0; left: 0; right: 0; bottom: 0; background-color: var(--surface-light); transition: .3s; border-radius: 24px; border: 1px solid var(--border); }
        .slider:before { position: absolute; content: ""; height: 16px; width: 16px; left: 3px; bottom: 3px; background-color: white; transition: .3s; border-radius: 50%; }
        input:checked + .slider { background-color: var(--accent); }
        input:checked + .slider:before { transform: translateX(20px); }

        .btn-submit-master { background: linear-gradient(135deg, var(--primary), var(--primary-dark)); color: #fff; border: none; padding: 16px 40px; border-radius: 12px; font-weight: 700; font-size: 1.05rem; cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; max-width: 320px; margin: 40px auto 0 auto; box-shadow: 0 8px 24px rgba(0, 212, 255, 0.3); transition: all 0.25s ease; }
        .btn-submit-master:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(0, 212, 255, 0.4); filter: brightness(1.1); }
        .btn-submit-master .material-icons-round { font-size: 22px; }

        @keyframes slideIn { from { transform: translateY(-10px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
    </style>
</head>
<body>

<div class="wrapper">
    <div class="header-panel">
        <div class="header-title-group">
            <span class="material-icons-round header-icon">layers</span>
            <div>
                <h1>Gestão Avançada de Planos</h1>
                <p>Ambiente operacional dinâmico para tabelas de preços e regras de MAC.</p>
            </div>
        </div>
    </div>

    <?php if ($mensagem_status): ?>
        <div class="status-toast <?php echo $status_tipo; ?>">
            <span class="material-icons-round"><?php echo $status_tipo === 'success' ? 'check_circle' : 'error'; ?></span>
            <?php echo $mensagem_status; ?>
        </div>
    <?php endif; ?>

    <form method="POST">
        <input type="hidden" name="action_salvar" value="1">

        <div class="card-global">
            <div class="section-title">
                <span class="material-icons-round">bolt</span>
                <span>Configuração de Botão & API do WhatsApp</span>
            </div>
            
            <div class="flex-row triple-row">
                <div class="form-group">
                    <label for="seu_whatsapp">WhatsApp Destinatário</label>
                    <input type="text" id="seu_whatsapp" name="seu_whatsapp" value="<?php echo htmlspecialchars($dados['seu_whatsapp'] ?? ''); ?>" placeholder="Ex: 5571997244148" required>
                    <p class="hint"><span class="material-icons-round" style="font-size:13px">info</span>Apenas números (Código País + DDD).</p>
                </div>

                <div class="form-group">
                    <label for="texto_botao_upgrade">Texto do Botão na Página</label>
                    <input type="text" id="texto_botao_upgrade" name="texto_botao_upgrade" value="<?php echo htmlspecialchars($dados['texto_botao_upgrade'] ?? ''); ?>" placeholder="Ex: Fazer Upgrade" required>
                    <p class="hint"><span class="material-icons-round" style="font-size:13px">edit</span>Rótulo de clique do cliente.</p>
                </div>

                <div class="form-group">
                    <label for="mensagem_predefinida">Mensagem de Conversão WhatsApp</label>
                    <input type="text" id="mensagem_predefinida" name="mensagem_predefinida" value="<?php echo htmlspecialchars($dados['mensagem_predefinida'] ?? ''); ?>" placeholder="Mensagem padrão..." required>
                    <p class="hint"><span class="material-icons-round" style="font-size:13px">code</span>Use <code>{plano}</code> para injetar o nome do plano selecionado automaticamente.</p>
                </div>
            </div>
        </div>

        <div class="section-title" style="padding-left: 5px;">
            <span class="material-icons-round">widgets</span>
            <span>Matriz de Recursos e Limitação de Dispositivos (MAC)</span>
        </div>
        
        <div class="grid-planos">
            <?php foreach ($dados['planos'] as $id => $plano): ?>
                <div class="card-plano <?php echo ($plano['popular'] ?? false) ? 'popular-active' : ''; ?>">
                    <h3>
                        <span><?php echo htmlspecialchars($plano['nome'] ?? ''); ?></span>
                        <span class="material-icons-round" style="color: var(--text-secondary); font-size: 20px;">badge</span>
                    </h3>
                    
                    <div class="form-group">
                        <label>Nome do Card</label>
                        <input type="text" name="planos[<?php echo $id; ?>][nome]" value="<?php echo htmlspecialchars($plano['nome'] ?? ''); ?>" required>
                    </div>

                    <div class="form-group">
                        <label>Valor de Cobrança (R$)</label>
                        <input type="text" name="planos[<?php echo $id; ?>][preco]" value="<?php echo htmlspecialchars($plano['preco'] ?? ''); ?>" placeholder="45,00" required>
                    </div>

                    <div class="form-group">
                        <label>Atribuição de MACs</label>
                        <input type="text" name="planos[<?php echo $id; ?>][macs]" value="<?php echo htmlspecialchars($plano['macs'] ?? ''); ?>" placeholder="Ex: 5 MACs" required>
                    </div>

                    <div class="form-group" style="flex-grow: 1;">
                        <label>Lista de Recursos (Um por linha)</label>
                        <textarea name="planos[<?php echo $id; ?>][recursos]" placeholder="Insira as vantagens..."><?php echo htmlspecialchars(implode("\n", $plano['recursos'] ?? [])); ?></textarea>
                    </div>

                    <div class="switch-wrapper">
                        <span class="switch-label">Destaque comercial</span>
                        <label class="switch">
                            <input type="checkbox" name="planos[<?php echo $id; ?>][popular]" <?php echo ($plano['popular'] ?? false) ? 'checked' : ''; ?>>
                            <span class="slider"></span>
                        </label>
                    </div>
                </div>
            <?php endforeach; ?>
        </div>

        <button type="submit" class="btn-submit-master">
            <span class="material-icons-round">save</span>
            <span>Publicar Atualizações</span>
        </button>
    </form>
</div>

</body>
</html>