Appearance
Centro de contacto (Panel)
Ubicación
- Ruta:
/communications(requiere org mode y políticacommunications.conversation.read). - Pestaña lateral: Comunicaciones (icono MessageSquare).
UI
- Visual language aligned with Centro de Comunicaciones / Contact Center mocks: lavanda suave (
bg-communications-canvas≈ mezcla deaccentybackground), morado primario (text-primary), CTAs naranja (secondary), tarjetas con sombra suave, carriles de buzón, lista tipo “Mensajes” con filtros circulares por canal y empty state centrado con icono. - Resumen: métricas por canal Meta, cuarta tarjeta “Correo · voz · webchat” como hueco explícito; Conversaciones recientes con pastillas alineadas a la tabla: En progreso (
open), Esperando (pending), Resuelto (resolved), más IA atendiendo (deshabilitada hasta valor en esquema). Columna derecha (distribución, costos, equipo) con datos reales solo donde el API existe; la tarjeta Distribución por canal usa cabecera en color primary (texto blanco en mayúsculas) y cuerpo claro. Las pastillas Resumen / Chat / Ajustes reflejan el estado del centro: Chat solo aparece activo mientras el overlay está abierto; al cerrar o minimizar, vuelve Resumen. - Contact Center (overlay): cabecera con pestañas horizontales: Contact Center e IA activables; Chat Interno, Supervisor y Telefonía siguen deshabilitadas («Próximamente»). Con IA, el cuerpo reutiliza el mismo
AiChatContenten layoutextendedque la vista a pantalla completa del chat (lista «Conversaciones» + detalle + pestañas SISTEMA/NEGOCIO/PERSONAL/PANELES), conembedded: no se muestran cambiar modo de vista ni cerrar del chat en la barra del panel derecho (el modo de vista del dashboard no aplica dentro del overlay). La cabecera del overlay sigue ofreciendo Disponible (solo en Contact Center), minimizar y cerrar en ambos módulos. Barra de buzones izquierda anclada por defecto; en la parte superior de la barra, botón con icono de panel para desanclar y entonces la barra solo se despliega al pasar el cursor por el borde izquierdo (en dispositivos sin hover fino se mantiene ancha). Entradas de buzón tipo squircle: estado normal claro (bg-card); hover gris suave (según mock); seleccionado lavanda (bg-accent) con texto/iconoprimaryy marcador morado ancho (w-3) al lado de la tarjeta dentro del carril (sin desbordar ni scroll horizontal). El punto azul (info) en Todos solo indica mensajes sin leer (unreadCount), no selección. Al abrir o restaurar el overlay: la pestaña superior vuelve a Contact Center; no queda conversación seleccionada en el hilo y la lista «Mensajes» no aplica filtro de canal (todos los canales; pestañas internas vuelven a su estado por defecto). - Minimizado: pastilla flotante abajo a la derecha en la vista de comunicaciones (icono MessageSquare, etiqueta Comunicaciones); Restaurar usa icono maximizar; Cerrar deja el centro cerrado y limpia el estado minimizado.
Integración API
| Uso | Método y ruta |
|---|---|
| Cuentas canal | GET /communications/channel-accounts |
| Listar chats | GET /communications/conversations |
| Detalle chat | GET /communications/conversations/:id |
| Mensajes | GET /communications/conversations/:id/messages |
| Enviar | POST /communications/conversations/:id/messages |
Cliente tipado: @repo/api-client (listChannelAccounts, listConversations, etc.). No hay WebSocket ni SSE; hay botones de refresco/invalidación de caché TanStack Query.
Permisos
- Ver conversaciones y mensajes:
readsobrecommunications.conversation/communications.message. - Enviar:
createsobrecommunications.message.
Cliente API — nota de empaquetado
Tras cambios en @repo/schemas (p. ej. esquemas de comunicaciones), ejecutar pnpm --filter @repo/schemas build para que dist/ incluya los exports antes de consumir desde @repo/api-client en entornos que resuelven el paquete compilado.