<?php
session_start();
if (!isset($_SESSION['logado'])) { header("Location: login.php"); exit; }

require_once 'conexao.php';

$isAdmin = (strtolower($_SESSION['nivel']) === 'admin');
$usuarioLogado = $_SESSION['usuario'];
$msg = ""; $msg_tipo = ""; 

// --- 1. BUSCA CONFIGURAÇÕES DO SITE (NOME E COR) ---
$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) { }

$url_painel = "http://" . $_SERVER['HTTP_HOST'] . str_replace(basename($_SERVER['PHP_SELF']), '', $_SERVER['PHP_SELF']);

// --- 2. BUSCA PERFIS DISPONÍVEIS ---
try {
    $perfis_sistema = $connGeral->query("SELECT id, nome FROM perfil WHERE bloqueado IS NULL OR bloqueado != 'sim' ORDER BY nome ASC")->fetchAll(PDO::FETCH_ASSOC);
} catch (Exception $e) { $perfis_sistema = []; }

// --- 3. PROCESSAMENTO DE AÇÕES ---
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    try {
        $acao = $_POST['acao'];
        $id_rev = (int)($_POST['id_rev'] ?? 0);
        $filtroSeguranca = $isAdmin ? "" : " AND CadUser = '$usuarioLogado'";

        if ($acao === 'criar' || $acao === 'editar') {
            $user = trim($_POST['usuario']);
            $pass = trim($_POST['senha']);
            $limite = (int)$_POST['limite']; 
            $venc_ts = $_POST['data_premio'] ? strtotime($_POST['data_premio']) : 0;
            $perfis_salvar = !empty($_POST['perfis']) ? implode(',', $_POST['perfis']) : '';

            if ($acao === 'criar') {
                $check = $connUser->prepare("SELECT id FROM rev WHERE usuario = ?");
                $check->execute([$user]);
                if($check->rowCount() > 0){
                    $msg = "Usuário já existe!"; $msg_tipo = "warning";
                } else {
                    $sql = "INSERT INTO rev (usuario, senha, LimiteUser, data_premio, data_cadastro, CadUser, perfil, bloqueado, inativo) VALUES (?, ?, ?, ?, NOW(), ?, ?, 'nao', 'nao')";
                    $connUser->prepare($sql)->execute([$user, $pass, $limite, $venc_ts, $usuarioLogado, $perfis_salvar]);
                    $msg = "Revendedor criado!"; $msg_tipo = "success";
                }
            } else {
                $sql = "UPDATE rev SET usuario=?, senha=?, LimiteUser=?, data_premio=?, perfil=? WHERE id=? $filtroSeguranca";
                $connUser->prepare($sql)->execute([$user, $pass, $limite, $venc_ts, $perfis_salvar, $id_rev]);
                $msg = "Dados atualizados!"; $msg_tipo = "primary";
            }
        }
        if ($acao === 'excluir') {
            $connUser->prepare("DELETE FROM rev WHERE id=? $filtroSeguranca")->execute([$id_rev]);
            $msg = "Removido!"; $msg_tipo = "danger";
        }
    } catch (Exception $e) { $msg = "Erro: " . $e->getMessage(); $msg_tipo = "danger"; }
}

// --- 4. LISTAGEM ---
$limit_pg = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
$pg = isset($_GET['pagina']) ? (int)$_GET['pagina'] : 1;
$offset = ($pg - 1) * $limit_pg;
$busca = trim($_GET['busca'] ?? '');

$where = " WHERE 1=1";
if (!$isAdmin) $where .= " AND CadUser = '$usuarioLogado'";
if ($busca) $where .= " AND usuario LIKE '%$busca%'";

$total_reg = $connUser->query("SELECT COUNT(*) FROM rev $where")->fetchColumn();
$total_paginas = ceil($total_reg / $limit_pg);

$revendas = $connUser->query("SELECT * FROM rev $where ORDER BY id DESC LIMIT $limit_pg OFFSET $offset")->fetchAll();
?>

<!DOCTYPE html>
<html lang="pt-br">
<head>
    <meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Revendedores | <?= 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; }
        body { background: var(--bg-body); color: #fff; font-family: 'Segoe UI', sans-serif; overflow-x: hidden; }
        .sidebar { width: 260px; height: 100vh; position: fixed; background: var(--bg-card); padding: 20px; border-right: 1px solid #333; transition: 0.3s; z-index: 1050; overflow-y: auto; }
        .main-content { margin-left: 260px; padding: 25px; transition: 0.3s; }
        .nav-link { color: #a6a6b7; padding: 10px 12px; border-radius: 8px; margin-bottom: 2px; display: flex; align-items: center; gap: 10px; transition: 0.2s; text-decoration: none; font-size: 0.9rem; }
        .nav-link.active, .nav-link:hover { background: var(--primary); color: #fff; }
        .nav-group-title { font-size: 0.75rem; text-transform: uppercase; color: #5e5873; font-weight: 700; margin: 20px 0 10px 12px; }
        .card-custom { background: var(--bg-card); border: 1px solid #333; border-radius: 12px; }
        .form-control, .form-select { background: #2b2b40 !important; border: 1px solid #444 !important; color: #fff !important; }
        .table-dark { background: var(--bg-card); --bs-table-bg: var(--bg-card); }
        .fw-white { color: #ffffff !important; font-weight: 700; text-shadow: 1px 1px 2px rgba(0,0,0,0.5); }
        .badge-perfil { background: rgba(0, 207, 232, 0.15); color: #00cfe8; border: 1px solid rgba(0, 207, 232, 0.3); font-size: 0.7rem; padding: 2px 6px; border-radius: 4px; margin-right: 2px; }
        @media (max-width: 992px) { .sidebar { transform: translateX(-100%); } .sidebar.show { transform: translateX(0); } .main-content { margin-left: 0; } .mobile-toggle { display: block !important; } }
        .mobile-toggle { display: none; background: none; border: none; color: #fff; font-size: 1.5rem; margin-bottom: 20px; }
        .overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1040; }
        .overlay.show { display: block; }
    </style>
</head>
<body>

<div class="overlay" id="overlay" onclick="toggleMenu()"></div>

<nav class="sidebar" id="sidebar">
    <h4 class="mb-4 fw-bold text-white text-center"><i class="fas fa-tv text-primary"></i> <?= htmlspecialchars($nomePainel) ?></h4>
    <div class="nav flex-column">
        <a href="index.php" class="nav-link"><i class="fas fa-home"></i> Dashboard</a>
        <?php if ($isAdmin): ?>
            <div class="nav-group-title">Administração</div>
            <a href="gerenciar_perfis.php" class="nav-link"><i class="fas fa-layer-group"></i> Gerenciar Perfis</a>
            <a href="gerenciar_dns.php" class="nav-link"><i class="fas fa-network-wired"></i> Servidores DNS</a>
            <a href="gerenciar_admins.php" class="nav-link"><i class="fas fa-user-shield"></i> Gestão de Admins</a>
            <a href="gerenciar_email.php" class="nav-link"><i class="fas fa-envelope"></i> Config. E-mail</a>
            <a href="personalizar_painel.php" class="nav-link"><i class="fas fa-paint-brush"></i> Personalizar</a>
            <a href="gerenciar_backups.php" class="nav-link"><i class="fas fa-database"></i> Backups</a>
            <a href="config_geral.php" class="nav-link"><i class="fas fa-cogs"></i> Config. Geral</a>
        <?php endif; ?>
        <div class="nav-group-title">Operacional</div>
        <a href="revendedores.php" class="nav-link active"><i class="fas fa-store"></i> Revendedores</a>
        <a href="clientes.php" class="nav-link"><i class="fas fa-users"></i> Clientes</a>
        <a href="testes.php" class="nav-link"><i class="fas fa-stopwatch"></i> Testes</a>
        <a href="status_online.php" class="nav-link"><i class="fas fa-wifi"></i> Monitor Online</a>
        <hr class="border-secondary mt-4"><a href="sair.php" class="nav-link text-danger"><i class="fas fa-sign-out-alt"></i> Sair</a>
    </div>
</nav>

<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 flex-wrap gap-2">
        <h3 class="fw-bold fw-white">Gestão de Revendedores</h3>
        <button onclick="new bootstrap.Modal(document.getElementById('modalCriar')).show()" class="btn btn-primary fw-bold px-4"><i class="fas fa-plus me-2"></i>Novo Cadastro</button>
    </div>

    <div class="card card-custom p-3 mb-4">
        <form method="GET" class="row g-2">
            <div class="col-md-7"><input type="text" name="busca" class="form-control" placeholder="Pesquisar Usuário..." value="<?= $busca ?>"></div>
            <div class="col-md-3"><select name="limit" class="form-select"><?php foreach([10,50,100,500,1000] as $o): ?><option value="<?= $o ?>" <?= $limit_pg==$o?'selected':'' ?>><?= $o ?> registros</option><?php endforeach; ?></select></div>
            <div class="col-md-2"><button class="btn btn-primary w-100"><i class="fas fa-search"></i></button></div>
        </form>
    </div>

    <?php if($msg): ?><div class="alert alert-<?= $msg_tipo ?> alert-dismissible fade show"><?= $msg ?><button class="btn-close" data-bs-dismiss="alert"></button></div><?php endif; ?>

    <div class="card card-custom overflow-hidden shadow-lg">
        <div class="table-responsive">
            <table class="table table-dark table-hover mb-0 align-middle">
                <thead>
                    <tr class="text-secondary small text-uppercase">
                        <th class="ps-4">Usuário / Dono</th>
                        <th>Senha</th> <th>Perfis Liberados</th> <th class="text-center">Créditos</th>
                        <th>Vencimento</th> <th class="text-end pe-4">Ações</th>
                    </tr>
                </thead>
                <tbody>
                    <?php foreach($revendas as $r): 
                        $venc_f = is_numeric($r['data_premio']) && $r['data_premio'] > 0 ? date('d/m/Y', (int)$r['data_premio']) : '---';
                        $venc_inp = is_numeric($r['data_premio']) && $r['data_premio'] > 0 ? date('Y-m-d', (int)$r['data_premio']) : '';
                        
                        // Formata Perfis para exibição nítida
                        $perfis_display = "";
                        if(!empty($r['perfil'])){
                            $tags = explode(',', $r['perfil']);
                            foreach($tags as $t) if($t != "") $perfis_display .= "<span class='badge-perfil'>".htmlspecialchars($t)."</span>";
                        } else { $perfis_display = "<span class='text-white-50 small'>Nenhum</span>"; }
                    ?>
                    <tr>
                        <td class="ps-4"><div class="fw-bold fw-white"><?= htmlspecialchars($r['usuario']) ?></div><div class="text-white-50 small">Dono: <span class="text-info"><?= $r['CadUser'] ?></span></div></td>
                        <td><code class="text-warning fw-bold"><?= htmlspecialchars($r['senha']) ?></code></td>
                        <td style="max-width: 200px;"><?= $perfis_display ?></td>
                        <td class="text-center"><span class="badge bg-primary px-3"><?= $r['LimiteUser'] ?></span></td>
                        <td><span class="text-white-50 small fw-bold"><?= $venc_f ?></span></td>
                        
                        <td class="text-end pe-4">
                            <button onclick='abrirEditar(<?= json_encode($r) ?>, "<?= $venc_inp ?>")' class="btn btn-sm btn-info rounded-circle me-1"><i class="fas fa-pen text-white"></i></button>
                            <form method="POST" class="d-inline" onsubmit="return confirm('Excluir?')"><input type="hidden" name="acao" value="excluir"><input type="hidden" name="id_rev" value="<?= $r['id'] ?>"><button class="btn btn-sm btn-danger rounded-circle"><i class="fas fa-trash"></i></button></form>
                        </td>
                    </tr>
                    <?php endforeach; ?>
                </tbody>
            </table>
        </div>
    </div>
</main>

<div class="modal fade" id="modalCriar" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content bg-dark border-secondary text-white"><form method="POST"><input type="hidden" name="acao" value="criar"><div class="modal-header border-secondary"><h5>Novo Revendedor</h5><button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button></div><div class="modal-body p-4"><div class="mb-3"><label class="fw-white">Usuário</label><input type="text" name="usuario" class="form-control" required></div><div class="mb-3"><label class="fw-white">Senha</label><input type="text" name="senha" class="form-control" required></div><div class="row"><div class="col-6 mb-3"><label class="fw-white">Limite</label><input type="number" name="limite" class="form-control" value="10"></div><div class="col-6 mb-3"><label class="fw-white">Vencimento</label><input type="date" name="data_premio" class="form-control"></div></div><label class="text-info fw-bold mb-2 small">LIBERAR PERFIS:</label><div style="max-height: 120px; overflow-y: auto;" class="p-2 border border-secondary rounded"><?php foreach($perfis_sistema as $p): ?><div class="form-check"><input class="form-check-input" type="checkbox" name="perfis[]" value="<?= $p['nome'] ?>" id="c_<?= $p['id'] ?>"><label class="form-check-label" for="c_<?= $p['id'] ?>"><?= $p['nome'] ?></label></div><?php endforeach; ?></div></div><div class="modal-footer border-secondary"><button type="submit" class="btn btn-primary w-100 fw-bold">CADASTRAR REVENDA</button></div></form></div></div></div>

<div class="modal fade" id="modalEditar" tabindex="-1"><div class="modal-dialog modal-dialog-centered"><div class="modal-content bg-dark border-secondary text-white"><form method="POST"><input type="hidden" name="acao" value="editar"><input type="hidden" name="id_rev" id="edit_id">
    <div class="modal-header border-secondary"><h5>Editar Revenda</h5><button type="button" class="btn-close btn-close-white" data-bs-dismiss="modal"></button></div>
    <div class="modal-body p-4">
        <div class="mb-3"><label class="fw-white">Usuário</label><input type="text" name="usuario" id="edit_user" class="form-control"></div>
        <div class="mb-3"><label class="fw-white">Senha</label><input type="text" name="senha" id="edit_pass" class="form-control"></div>
        <div class="row"><div class="col-6 mb-3"><label class="fw-white">Limite</label><input type="number" name="limite" id="edit_limite" class="form-control"></div><div class="col-6 mb-3"><label class="fw-white">Vencimento</label><input type="date" name="data_premio" id="edit_venc" class="form-control"></div></div>
        <label class="text-info fw-bold mb-2 small">LIBERAR PERFIS:</label>
        <div style="max-height: 120px; overflow-y: auto;" class="p-2 border border-secondary rounded">
            <?php foreach($perfis_sistema as $p): ?><div class="form-check"><input class="form-check-input chk-edit" type="checkbox" name="perfis[]" value="<?= $p['nome'] ?>" id="e_<?= $p['id'] ?>"><label class="form-check-label" for="e_<?= $p['id'] ?>"><?= $p['nome'] ?></label></div><?php endforeach; ?>
        </div>
    </div>
    <div class="modal-footer border-secondary"><button type="submit" class="btn btn-info w-100 fw-bold">SALVAR ALTERAÇÕES</button></div>
</form></div></div></div>

<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 abrirEditar(r, venc) {
        document.getElementById('edit_id').value = r.id; document.getElementById('edit_user').value = r.usuario;
        document.getElementById('edit_pass').value = r.senha; document.getElementById('edit_limite').value = r.LimiteUser;
        document.getElementById('edit_venc').value = venc;
        document.querySelectorAll('.chk-edit').forEach(el => el.checked = false);
        if(r.perfil) {
            let p_ids = r.perfil.split(',');
            p_ids.forEach(p_nome => {
                let chks = document.querySelectorAll('.chk-edit');
                chks.forEach(c => { if(c.value === p_nome) c.checked = true; });
            });
        }
        new bootstrap.Modal(document.getElementById('modalEditar')).show();
    }
</script>
</body>
</html>
