// Módulo CONFIGURAÇÕES — Módulos, Usuários e Permissões const ConfigPage = () => { const [tab, setTab] = React.useState("modulos"); return (
Sistema

Configurações

Módulos contratados · usuários e permissões · integrações · regras de negócio.

{tab === "modulos" && } {tab === "usuarios" && } {tab === "empresa" && } {tab === "integracoes" && } {tab === "regras" && } {tab === "auditoria" && }
); }; const ModulosView = () => { const ativos = MODULOS.filter(m => m.ativo); const inativos = MODULOS.filter(m => !m.ativo); const totalAtivos = ativos.reduce((s, m) => s + m.preco, 0); return (
Ativos · {ativos.length}
{ativos.map(m => )}
Disponíveis para contratar · {inativos.length}
{inativos.map(m => )}
); }; const ModuloCard = ({ mod }) => (
{mod.ativo &&
ATIVO
}
{mod.nome}
{brl(mod.preco)}/mês

{mod.desc}

{mod.ativo ? (
) : (
)}
); const UsuariosView = () => (
{USUARIOS.map((u, i) => ( ))}
UsuárioEmailCargoPerfil de acessoÚltimo acessoStatus
{u.nome} {u.email} {u.cargo} {u.perfil} {u.ultimoAcesso} {u.ativo ? "Ativo" : "Inativo"}

Matriz de permissões · por perfil

Módulo Admin Gerente Op. Live Vendedor Estoque Financeiro Marketing

total · leitura · sem acesso

); const PermRow = ({ mod, perms }) => ( {mod} {perms.map((p, i) => ( {p === "full" && } {p === "read" && } {p === "none" && } ))} ); const EmpresaView = () => (

Dados da empresa

); const IntegracoesView = () => (
{[ { nome: "Mercado Pago", desc: "Pix · Cartão · Maquininha", status: "conectado", color: "green" }, { nome: "Correios SIGEP", desc: "Cálculo de frete · etiquetas", status: "online", color: "green" }, { nome: "WhatsApp Business API", desc: "Mensagens oficiais", status: "saldo R$ 28,40", color: "amber" }, { nome: "Bling NF-e", desc: "Emissão fiscal automática", status: "conectado · 218/mês", color: "green" }, { nome: "ViaCEP", desc: "Endereço por CEP", status: "ativo", color: "green" }, { nome: "Jadlog", desc: "Transportadora alternativa", status: "não configurado", color: "muted" }, { nome: "Instagram Graph", desc: "Captura comentários live", status: "não configurado", color: "muted" }, { nome: "Google Analytics 4", desc: "Analytics da loja virtual", status: "conectado", color: "green" }, ].map((i, idx) => (
{i.nome}

{i.desc}

{i.status}
))}
); const RegrasView = () => (

Progressão de nível · 11 níveis

{[ { n: 1, gasto: 0, pedidos: 1, ben: "—", cb: 0 }, { n: 3, gasto: 500, pedidos: 3, ben: "Frete grátis acima R$300", cb: 2 }, { n: 5, gasto: 1500, pedidos: 8, ben: "5% desc Live", cb: 3 }, { n: 7, gasto: 3500, pedidos: 15, ben: "10% desc Live + frete grátis", cb: 5 }, { n: 9, gasto: 6000, pedidos: 25, ben: "15% desc + acesso preview", cb: 7 }, { n: 11, gasto: "manual", pedidos: "—", ben: "VIP · presente anual", cb: 10 }, ].map((r) => ( ))}
NívelTotal gasto mínimoOU Pedidos mínimosBenefício% Cashback
{typeof r.gasto === 'number' ? brl(r.gasto) : r.gasto} {r.pedidos} {r.ben} {r.cb}%

Cashback · regras gerais

Validade cashback
90 dias
Cashback Live
5% padrão
Cashback Loja
3%
Cashback Site
4%
Mínimo p/ resgate
R$ 20,00

Estoque · alertas

Estoque mínimo padrão
2 unidades
Pedido parado · alerta
2 dias úteis
Carrinho expira em
48 horas
Desconto máx vendedor
15% sem aprovação
); const AuditoriaView = () => (

Log de auditoria · últimos eventos

30 dias retidos
HoraUsuárioAçãoObjetoIP
20:41Letícia BorgesCRIOU pedidoPedido L-2847189.x.x.42
20:32Marcela CoutinhoALTEROU preçoVestido Luna · R$ 219 → R$ 189 (live)177.x.x.18
19:14Bruna CarvalhoCRIOU venda PDVVenda P-8442 · R$ 359,80192.168.1.4
18:00Marcela CoutinhoEXPORTOU dadosRelatório de vendas Mai/26 · CSV177.x.x.18
17:42Janaína FerreiraCANCELOU pedidoPedido S-12842 · motivo: desistência200.x.x.92
14:30Tatiana ReisAJUSTOU estoqueCropped Pétala · +12 un · OC-184192.168.1.7

LGPD · solicitações de privacidade

ClienteSolicitaçãoDataStatus
Aline RochaExclusão completa de dados14/05/2026Concluído
Marcos EduardoPortabilidade · exportar JSON08/05/2026Em processamento
); Object.assign(window, { ConfigPage });