/* |-------------------------------------------------------------------------- | Agência PSI |-------------------------------------------------------------------------- | Criado e desenvolvido por Leonardo Nohama | | Tecnologia aplicada à escuta. | Estrutura para o cuidado. | | Arquivo: src/utils/menuPageOptions.js | Data: 2026 | Local: São Carlos/SP — Brasil |-------------------------------------------------------------------------- | © 2026 — Todos os direitos reservados |-------------------------------------------------------------------------- */ // Catálogo plano de páginas do sistema para o select de documentação SaaS. // Menus com `to` em string são extraídos automaticamente. // O menu da Clínica usa route names, então suas páginas são listadas manualmente. import therapistMenuRaw from '@/navigation/menus/therapist.menu.js'; import saasMenuFn from '@/navigation/menus/saas.menu.js'; function flattenItems(items = [], groupLabel = '') { const result = []; for (const item of items) { const to = item.to; if (to && typeof to === 'string' && item.label) { const prefix = groupLabel ? `${groupLabel} · ` : ''; result.push({ label: `${prefix}${item.label}`, path: to }); } if (item.items?.length) { result.push(...flattenItems(item.items, item.label || groupLabel)); } } return result; } function flattenMenu(menu = []) { const result = []; for (const group of menu) { if (group.items?.length) { result.push(...flattenItems(group.items, group.label)); } else if (group.to && typeof group.to === 'string' && group.label) { result.push({ label: group.label, path: group.to }); } } return result; } const therapistPages = flattenMenu(therapistMenuRaw).map((p) => ({ ...p, label: `Terapeuta · ${p.label}` })); const saasPages = flattenMenu(saasMenuFn({ isSaasAdmin: true })).map((p) => ({ ...p, label: `SaaS · ${p.label}` })); // Clínica usa route names → listagem manual com os paths reais das rotas const clinicPages = [ { label: 'Clínica · Dashboard', path: '/admin' }, { label: 'Clínica · Agenda da Clínica', path: '/admin/agenda/clinica' }, { label: 'Clínica · Compromissos', path: '/admin/agenda/compromissos' }, { label: 'Clínica · Lista de Pacientes', path: '/admin/pacientes' }, { label: 'Clínica · Grupos de Pacientes', path: '/admin/pacientes/grupos' }, { label: 'Clínica · Tags de Pacientes', path: '/admin/pacientes/tags' }, { label: 'Clínica · Link Externo', path: '/admin/pacientes/link-externo' }, { label: 'Clínica · Cadastros Recebidos', path: '/admin/pacientes/cadastro/recebidos' }, { label: 'Clínica · Profissionais', path: '/admin/clinic/professionals' }, { label: 'Clínica · Tipos de Clínica', path: '/admin/clinic/features' }, { label: 'Clínica · Meu Plano', path: '/admin/meu-plano' }, { label: 'Clínica · Segurança', path: '/admin/settings/security' }, { label: 'Clínica · Agendamento Online', path: '/admin/online-scheduling' } ]; const portalPages = [ { label: 'Portal · Dashboard', path: '/portal' }, { label: 'Portal · Minhas Sessões', path: '/portal/sessoes' } ]; export const PAGE_OPTIONS = [...therapistPages, ...clinicPages, ...saasPages, ...portalPages];