import { LayoutDashboard, PhoneOutgoing, Headset, Router, Radar, Mic, Sparkles, BarChart3, ShieldCheck, } from "lucide-react"; import type { NavSection } from "../shell/nav-types"; /** IA fixa do menu Tenant (agente.md secao 169). Páginas construídas até * agora: Dashboard (PHASE 23), Telefonia > Ramais (PHASE 25), Discador > * Campanhas (PHASE 26), Call Center > Filas/Pausas/Disposições, Telefonia * > Troncos e Discador > Lista de Bloqueio (PHASE 27) — o resto existe pra * provar a arquitetura completa (Product Principle #5 em PRODUCT.md), * renderizado como indisponível em vez de virar link morto. "Itens sem * permissão não aparecem" (secao 169) ainda não é aplicado aqui — este * primeiro corte mostra a IA inteira pra qualquer usuário tenant * autenticado; filtrar por permission real fica pra quando mais telas * existirem pra testar contra. */ export const TENANT_NAV: NavSection[] = [ { label: "Dashboard", icon: LayoutDashboard, href: "/app", description: "Chamadas, agentes e filas agora", }, { label: "Discador", icon: PhoneOutgoing, children: [ { label: "Campanhas", href: "/app/discador/campanhas", description: "Discador preditivo — campanhas deste tenant", }, { label: "Leads" }, { label: "Importações" }, { label: "Callbacks" }, { label: "Lista de Bloqueio", href: "/app/discador/bloqueio", description: "Números que o discador nunca chama", }, ], }, { label: "Call Center", icon: Headset, children: [ { label: "Agentes", href: "/app/callcenter/agentes", description: "Identidade de call center — liga um usuário a um agente e a um ramal", }, { label: "Filas", href: "/app/callcenter/filas", description: "Filas de atendimento deste tenant", }, { label: "Pausas", href: "/app/callcenter/pausas", description: "Motivos de pausa que o agente pode escolher", }, { label: "Disposições", href: "/app/callcenter/disposicoes", description: "Motivos de encerramento de chamada", }, ], }, { label: "Telefonia", icon: Router, children: [ { label: "Ramais", href: "/app/telefonia/ramais", description: "Ramais SIP deste tenant — números, senha, caller ID", }, { label: "Troncos", href: "/app/telefonia/troncos", description: "Troncos SIP deste tenant", }, { label: "Dialplan", href: "/app/telefonia/dialplan", description: "Editor de regras do contexto default — condição, ações, versões", }, ], }, { label: "Monitoramento", icon: Radar, children: [{ label: "Campanhas" }, { label: "Filas" }, { label: "Agentes" }, { label: "Ramais" }, { label: "Troncos" }], }, { label: "Gravações", icon: Mic }, { label: "IA", icon: Sparkles, children: [ { label: "Análises", href: "/app/relatorios/ia", description: "Dashboard de IA — score, sentimento, assuntos, compliance", }, { label: "Scorecards" }, { label: "Prompts" }, { label: "Configurações" }, ], }, { label: "Relatórios", icon: BarChart3, children: [ { label: "Chamadas" }, { label: "Agentes", href: "/app/relatorios/agentes", description: "Tempo logado/pausado/em chamada e TMA por agente", }, { label: "Filas", href: "/app/relatorios/filas", description: "Recebidas/atendidas/abandonadas, TME/TMA, Service Level", }, { label: "Campanhas", href: "/app/relatorios/campanhas", description: "Leads, tentativas, taxas de atendimento e contato", }, { label: "Consumo" }, ], }, { label: "Administração", icon: ShieldCheck, children: [{ label: "Usuários" }, { label: "Perfis" }, { label: "Configurações" }], }, ];