feat(frontend): plugin NewWhats — Inbox + Secretária (gating por papel)
- PluginsView: registra o plugin 'newwhats' (config só no catálogo, exclusivo do
superadmin via view 'plugins' — já gateada em isViewAllowed).
- pluginRegistry: 'newwhats' em ALWAYS_ON (ativação por plugin é local/localStorage
e não propaga; ALWAYS_ON garante Inbox/Secretária para TODOS os usuários).
- App.tsx: views wa-inbox/wa-secretaria (ViewKey, rotas, render); gating
isPluginActive('newwhats') libera a qualquer usuário.
- Sidebar: itens WHATSAPP + SECRETÁRIA IA quando o plugin está ativo.
- Novas views consomem o proxy /api/nw/v1/* (motor ext-api). Estágio 1: funcional
(lista/thread/envio; ask da secretária), visual aproximado do motor.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -29,6 +29,31 @@ interface PluginDef {
|
||||
}
|
||||
|
||||
const PLUGINS: PluginDef[] = [
|
||||
{
|
||||
id: 'newwhats',
|
||||
name: 'NewWhats — WhatsApp & Secretária IA',
|
||||
tagline: 'Inbox WhatsApp + Atendente virtual',
|
||||
description: 'Integração com o motor NewWhats: Inbox de WhatsApp em tempo real e Secretária IA. Inbox e Secretária ficam disponíveis para todos os usuários; esta configuração é exclusiva do super-admin.',
|
||||
version: '1.0.0',
|
||||
author: 'ScoreOdonto',
|
||||
category: 'COMUNICAÇÃO',
|
||||
color: '#16a34a',
|
||||
sidebarItems: [
|
||||
{ id: 'wa-inbox', label: 'WHATSAPP' },
|
||||
{ id: 'wa-secretaria', label: 'SECRETÁRIA IA' },
|
||||
],
|
||||
features: [
|
||||
'Inbox WhatsApp (conversas, mensagens, envio)',
|
||||
'Secretária IA (atendente virtual do motor)',
|
||||
'Base de conhecimento da clínica sincronizada com o motor',
|
||||
],
|
||||
configFields: [
|
||||
{ key: 'NEWWHATS_URL', label: 'URL DO MOTOR', type: 'text', placeholder: 'https://newwhats.clube67.com', defaultValue: '' },
|
||||
{ key: 'NEWWHATS_INTEGRATION_KEY', label: 'CHAVE DE INTEGRAÇÃO', type: 'password', placeholder: 'nw_...', defaultValue: '' },
|
||||
{ key: 'NEWWHATS_WEBHOOK_SECRET', label: 'SEGREDO DO WEBHOOK', type: 'password', placeholder: '(HMAC)', defaultValue: '' },
|
||||
{ key: 'NEWWHATS_CLINICA_ID', label: 'CLÍNICA (ID)', type: 'text', placeholder: 'c_...', defaultValue: '' },
|
||||
],
|
||||
},
|
||||
{
|
||||
id: 'rx-scoreodonto',
|
||||
name: 'RX ScoreOdonto',
|
||||
|
||||
Reference in New Issue
Block a user