<?php
session_start();
require_once 'conexao.php';

// ==============================================================================
// 1. TRAVA DE SEGURANÇA (APENAS ADMINISTRADORES PODEM ACESSAR)
// ==============================================================================
if (!isset($_SESSION['logado']) || strtolower($_SESSION['nivel']) !== 'admin') {
    // Se não for admin, é expulso de volta para o dashboard/index
    header("Location: index.php"); 
    exit;
}

$isAdmin = true; // Como passou da trava acima, sabemos que é Admin
$usuarioLogado = $_SESSION['usuario'];

// Configurações do Painel
$nomePainel = "IPTV PANEL"; $corPrimaria = "#7367f0"; 
try {
    $conf = $connGeral->query("SELECT NomePainel, TemaPainel FROM site_config LIMIT 1")->fetch(PDO::FETCH_ASSOC);
    if ($conf) {
        if (!empty($conf['NomePainel'])) $nomePainel = $conf['NomePainel'];
        if (!empty($conf['TemaPainel'])) $corPrimaria = $conf['TemaPainel'];
    }
} catch (Exception $e) { }



// --- 3. CORREÇÃO DO MENU LATERAL (MENSAGENS NÃO LIDAS) ---
$total_msg_nao_lidas = 0;
try {
    $stmtMsg = $connUser->prepare("SELECT COUNT(*) FROM chamados_suporte WHERE destinatario = ? AND lida = 'nao'");
    $stmtMsg->execute([$usuarioLogado]);
    $total_msg_nao_lidas = $stmtMsg->fetchColumn();
} catch (Exception $e) { }



// Busca lista de revendedores para os menus Dropdown
$revendedores = [];
try {
    $stmtRev = $connUser->query("SELECT usuario FROM rev ORDER BY usuario ASC");
    $revendedores = $stmtRev->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) {}

$tab_ativa = 'exportar';
$xmlExportado = "";
$logImportacao = [];

// ==============================================================================
// 2. LÓGICA DE EXPORTAÇÃO
// ==============================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao']) && $_POST['acao'] === 'exportar') {
    $tab_ativa = 'exportar';
    $dono_alvo = $_POST['revendedor_export'];
    
    try {
        if ($dono_alvo === 'Todos') {
            $stmtEx = $connUser->query("SELECT * FROM usuario");
        } else {
            $stmtEx = $connUser->prepare("SELECT * FROM usuario WHERE CadUser = ?");
            $stmtEx->execute([$dono_alvo]);
        }
        $usuarios_export = $stmtEx->fetchAll(PDO::FETCH_ASSOC);

        if (count($usuarios_export) > 0) {
            $xmlExportado .= "<xml-user-manager ver=\"1.0\">\n";
            foreach ($usuarios_export as $u) {
                // Trata a data de vencimento (converte de Timestamp para Data normal se precisar)
                $venc = is_numeric($u['data_premio']) ? date('Y-m-d', $u['data_premio']) : date('Y-m-d', strtotime($u['data_premio']));
                $cadastro = !empty($u['data_cadastro']) ? date('Y-m-d', strtotime($u['data_cadastro'])) : date('Y-m-d');
                $nome = !empty($u['nome']) ? $u['nome'] : $u['usuario'];
                $perfil = !empty($u['perfil']) ? $u['perfil'] : '';
                
                // Monta a linha XML
                $xmlExportado .= '<user name="'.htmlspecialchars($u['usuario']).'" ' .
                                 'password="'.htmlspecialchars($u['senha']).'" ' .
                                 'display-name="'.htmlspecialchars($nome).'" ' .
                                 'email-address="'.htmlspecialchars($u['email'] ?? '').'" ' .
                                 'caduser="'.htmlspecialchars($u['CadUser']).'" ' .
                                 'celular="'.htmlspecialchars($u['celular'] ?? '').'" ' .
                                 'profiles="'.htmlspecialchars($perfil).'" ' .
                                 'max-connections="1" ' .
                                 'start-date="'.$cadastro.'" ' .
                                 'expire-date="'.$venc.'" ' .
                                 'tipo="2"/>' . "\n";
            }
            $xmlExportado .= "</xml-user-manager>";
        } else {
            $xmlExportado = "Nenhum usuário encontrado para este revendedor.";
        }
    } catch (Exception $e) {
        $xmlExportado = "Erro ao exportar: " . $e->getMessage();
    }
}

// ==============================================================================
// 3. LÓGICA DE IMPORTAÇÃO
// ==============================================================================
if ($_SERVER['REQUEST_METHOD'] === 'POST' && isset($_POST['acao']) && $_POST['acao'] === 'importar') {
    $tab_ativa = 'importar';
    $novo_dono = trim($_POST['revendedor_import']);
    $xmlString = trim($_POST['xml_dados']);

    if (!empty($xmlString) && !empty($novo_dono)) {
        // Tenta ler o XML ignorando erros de formatação
        libxml_use_internal_errors(true);
        $xml = simplexml_load_string($xmlString);

        if ($xml === false) {
            $logImportacao[] = "<span class='text-danger fw-bold'><i class='fas fa-times-circle'></i> Erro: O texto colado não é um formato XML válido. Verifique se copiou corretamente.</span>";
        } else {
            foreach ($xml->user as $usr) {
                $username = trim((string)$usr['name']);
                $password = trim((string)$usr['password']);
                $nome     = trim((string)$usr['display-name']);
                $email    = trim((string)$usr['email-address']);
                $celular  = trim((string)$usr['celular']);
                $perfil   = trim((string)$usr['profiles']);
                
                $vencimento_str = (string)$usr['expire-date'];
                $venc_timestamp = strtotime($vencimento_str);
                // Se a data vier inválida, joga 30 dias para frente
                if (!$venc_timestamp) $venc_timestamp = strtotime("+30 days"); 

                if (!empty($username) && !empty($password)) {
                    // Verifica se o usuário já existe
                    $chk = $connUser->prepare("SELECT id FROM usuario WHERE usuario = ?");
                    $chk->execute([$username]);

                    if ($chk->rowCount() > 0) {
                        // REJEITADO - JÁ EXISTE 
                        $logImportacao[] = "{$username}: <span class='text-warning fw-bold'>Usuário informado encontra-se em uso.</span>";
                    } else {
                        // APROVADO - INSERE NO BANCO COM O NOVO DONO
                        $ins = "INSERT INTO usuario (CadUser, nome, usuario, senha, email, celular, perfil, data_premio, data_cadastro, bloqueado, conexao) 
                                VALUES (?, ?, ?, ?, ?, ?, ?, ?, NOW(), 'nao', 1)";
                        try {
                            $connUser->prepare($ins)->execute([$novo_dono, $nome, $username, $password, $email, $celular, $perfil, $venc_timestamp]);
                            $logImportacao[] = "{$username}: <span class='text-success fw-bold'>Importado com sucesso para {$novo_dono}!</span>";
                        } catch (Exception $e) {
                            $logImportacao[] = "{$username}: <span class='text-danger'>Erro no banco de dados.</span>";
                        }
                    }
                }
            }
        }
    } else {
        $logImportacao[] = "<span class='text-danger fw-bold'>Selecione o Revendedor Destino e cole os dados!</span>";
    }
}
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>

<?php include 'tema_global.php'; ?>

    <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Exportar/Importar | <?= htmlspecialchars($nomePainel) ?></title>
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
    <link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" rel="stylesheet">
    <style>
        :root { --primary: <?= $corPrimaria ?>; --bg-body: #151521; --bg-card: #1e1e2d; --text-color: #d0d2d6; }
        body { background: var(--bg-body); color: var(--text-color); font-family: 'Segoe UI', sans-serif; overflow-x: hidden; }
        
        .sidebar { width: 260px; height: 100vh; position: fixed; background: var(--bg-card); border-right: 1px solid #333; z-index: 1050; padding: 20px; overflow-y: auto; transition: 0.3s; }
        .nav-link { color: #a6a6b7; padding: 12px 15px; border-radius: 8px; display: flex; align-items: center; gap: 12px; text-decoration: none; margin-bottom: 5px; font-weight: 500; transition: 0.2s; }
        .nav-link:hover, .nav-link.active { background: var(--primary); color: #fff; box-shadow: 0 4px 15px rgba(0,0,0,0.2); }
        .nav-group-title { font-size: 0.75rem; text-transform: uppercase; color: #5e5873; font-weight: 700; margin: 25px 0 10px 12px; letter-spacing: 1px; }
        
        .main-content { margin-left: 260px; padding: 30px; transition: 0.3s; }
        
        .card-custom { background: var(--bg-card); border: 1px solid #2b2b40; border-radius: 12px; box-shadow: 0 4px 20px rgba(0,0,0,0.2); padding: 25px; }
        .form-control, .form-select { background: #2b2b40; border: 1px solid #444; color: #fff; padding: 12px; border-radius: 8px; }
        .form-control:focus, .form-select:focus { background: #2b2b40; border-color: var(--primary); color: #fff; box-shadow: 0 0 0 0.25rem rgba(115, 103, 240, 0.25); }
        
        /* ABAS */
        .nav-tabs .nav-link { color: #a6a6b7; background: #252535; border: 1px solid #333; margin-right: 5px; border-radius: 8px 8px 0 0; border-bottom: none; }
        .nav-tabs .nav-link.active { background: var(--primary); color: #fff; border-color: var(--primary); font-weight: bold; }
        .tab-content { background: var(--bg-card); border: 1px solid #333; border-top: none; border-radius: 0 0 12px 12px; padding: 25px; }

        .console-box { background: #151521; border: 1px solid #444; color: #00cfe8; font-family: monospace; padding: 15px; border-radius: 8px; height: 300px; overflow-y: auto; white-space: pre-wrap; word-break: break-all; }
        .log-box { background: #151521; border: 1px solid #444; padding: 15px; border-radius: 8px; max-height: 300px; overflow-y: auto; font-family: monospace; font-size: 0.95rem; }
        
        .mobile-toggle { display: none; color: #fff; font-size: 1.5rem; background: none; border: none; margin-bottom: 20px; }
        .overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1040; } .overlay.show { display: block; }
        
        @media (max-width: 992px) { 
            .sidebar { transform: translateX(-100%); } .sidebar.show { transform: translateX(0); } 
            .main-content { margin-left: 0; padding: 15px; } .mobile-toggle { display: block; } 
        }
    </style>
</head>
<body>
<?php include 'menu.php'; ?>

<main class="main-content">
    <button class="mobile-toggle" onclick="toggleMenu()"><i class="fas fa-bars"></i></button>

    <div class="d-flex justify-content-between align-items-center mb-4">
        <h3 class="fw-bold m-0 text-white"><i class="fas fa-exchange-alt text-primary me-2"></i> Ferramenta de Migração</h3>
    </div>

    <ul class="nav nav-tabs border-0" id="migracaoTabs">
        <li class="nav-item flex-grow-1 text-center">
            <button class="nav-link w-100 py-3 <?= $tab_ativa == 'exportar' ? 'active' : '' ?>" data-bs-toggle="tab" data-bs-target="#tab-exportar">
                <i class="fas fa-level-up-alt me-2"></i> EXPORTAR CLIENTES
            </button>
        </li>
        <li class="nav-item flex-grow-1 text-center">
            <button class="nav-link w-100 py-3 <?= $tab_ativa == 'importar' ? 'active' : '' ?>" data-bs-toggle="tab" data-bs-target="#tab-importar">
                <i class="fas fa-level-down-alt me-2"></i> IMPORTAR CLIENTES
            </button>
        </li>
    </ul>

    <div class="tab-content shadow-lg">
        
        <div class="tab-pane fade <?= $tab_ativa == 'exportar' ? 'show active' : '' ?>" id="tab-exportar">
            <div class="row">
                <div class="col-lg-4 mb-4">
                    <form method="POST">
                        <input type="hidden" name="acao" value="exportar">
                        <label class="form-label text-white fw-bold">Selecione o Revendedor Origem</label>
                        <select name="revendedor_export" class="form-select mb-3" required>
                            <option value="Todos">Todos do Painel</option>
                            <?php foreach($revendedores as $r): ?>
                                <option value="<?= htmlspecialchars($r['usuario']) ?>" <?= (isset($_POST['revendedor_export']) && $_POST['revendedor_export'] == $r['usuario']) ? 'selected' : '' ?>>
                                    <?= htmlspecialchars($r['usuario']) ?>
                                </option>
                            <?php endforeach; ?>
                        </select>
                        <button type="submit" class="btn btn-primary w-100 fw-bold p-3"><i class="fas fa-cogs me-2"></i> GERAR EXPORTAÇÃO</button>
                    </form>
                    
                    <div class="alert alert-info mt-4 small border-0 bg-info bg-opacity-10 text-info">
                        <i class="fas fa-info-circle me-1"></i> Selecione o revendedor, gere o código e copie o texto gerado na caixa ao lado.
                    </div>
                </div>
                
                <div class="col-lg-8">
                    <label class="form-label text-white fw-bold">Código Gerado (XML)</label>
                    <div class="console-box" id="codigoXML"><?= htmlspecialchars($xmlExportado) ?></div>
                    <?php if(!empty($xmlExportado) && $xmlExportado != "Nenhum usuário encontrado para este revendedor."): ?>
                        <button class="btn btn-success mt-3 fw-bold" onclick="copiarXML()"><i class="fas fa-copy me-2"></i> COPIAR TUDO</button>
                    <?php endif; ?>
                </div>
            </div>
        </div>

        <div class="tab-pane fade <?= $tab_ativa == 'importar' ? 'show active' : '' ?>" id="tab-importar">
            <div class="row">
                <div class="col-lg-4 mb-4">
                    <form method="POST">
                        <input type="hidden" name="acao" value="importar">
                        <label class="form-label text-white fw-bold">Revendedor Destino (Quem vai receber)</label>
                        <select name="revendedor_import" class="form-select mb-3" required>
                            <option value="<?= htmlspecialchars($_SESSION['usuario']) ?>">Para Mim (<?= htmlspecialchars($_SESSION['usuario']) ?>)</option>
                            <?php foreach($revendedores as $r): ?>
                                <option value="<?= htmlspecialchars($r['usuario']) ?>"><?= htmlspecialchars($r['usuario']) ?></option>
                            <?php endforeach; ?>
                        </select>
                        
                        <label class="form-label text-white fw-bold">Cole o Código XML aqui</label>
                        <textarea name="xml_dados" class="form-control mb-3" rows="8" placeholder='<xml-user-manager ver="1.0">...' required></textarea>
                        
                        <button type="submit" class="btn btn-success w-100 fw-bold p-3" onclick="return confirm('Confirmar importação? Isso não pode ser desfeito.')"><i class="fas fa-upload me-2"></i> IMPORTAR DADOS</button>
                    </form>
                </div>
                
                <div class="col-lg-8">
                    <label class="form-label text-white fw-bold">Log de Processamento</label>
                    <div class="log-box">
                        <?php 
                        if (empty($logImportacao)) {
                            echo "<span class='text-muted'>Aguardando envio...</span>";
                        } else {
                            foreach ($logImportacao as $log) {
                                echo "<div><i class='fas fa-angle-right text-secondary me-2'></i> " . $log . "</div>";
                            }
                        }
                        ?>
                    </div>
                </div>
            </div>
        </div>

    </div>
</main>

<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
<script>
    function toggleMenu() { document.getElementById('sidebar').classList.toggle('show'); document.getElementById('overlay').classList.toggle('show'); }
    function copiarXML() { 
        navigator.clipboard.writeText(document.getElementById('codigoXML').innerText).then(() => alert("Código copiado! Vá para a aba IMPORTAR e cole os dados.")); 
    }
</script>
</body>
</html>
