/** * Admin Panel - HTML builder for user management */ const { buildHeader, buildFooter, buildHead } = require('./ui-template'); const { PANELS, DEFAULT_PERMISSIONS } = require('./panels'); function buildAdminHTML(agentes, admin) { const now = new Date().toLocaleString('pt-BR'); // Precompute permissions JSON for each agent row const agentesWithPerms = agentes.map(a => { let perms = []; try { perms = JSON.parse(a.permissions || '[]'); } catch(e) {} return { ...a, _perms: perms }; }); const pageCSS = ` `; // Panel label map for badges const panelLabels = {}; PANELS.forEach(p => { panelLabels[p.key] = p.label; }); return ` ${buildHead('Usuarios', pageCSS)} ${buildHeader({ role: admin.role || 'admin', userName: admin.nome, activePage: 'users', permissions: admin.permissions || [] })}

Usuarios Cadastrados (${agentes.length})

${agentesWithPerms.map(a => ` `).join('')}
ID Nome E-mail Role Permissoes Agente ID Status Criado em Acoes
${a.id} ${a.nome} ${a.email} ${a.role === 'admin' ? 'Admin' : a.role === 'corporate' ? 'Corporate' : 'Agente'} ${a._perms.map(k => '' + (panelLabels[k] || k) + '').join(' ')} ${a.agente_id || '-'} ${a.ativo ? 'Ativo' : 'Inativo'} ${a.created_at ? new Date(a.created_at).toLocaleDateString('pt-BR') : '-'} ${a.agente_id ? `Emular` : ''}
${buildFooter()}