UNPKG

skailan-conversations

Version:

Servicio de conversaciones y mensajería para Skailan

156 lines (111 loc) 3.68 kB
# @skailan/conversations Servicio de conversaciones y mensajería para la plataforma Skailan. ## Descripción Este módulo proporciona funcionalidades completas de mensajería y gestión de conversaciones para la plataforma Skailan. Incluye: - Gestión de conversaciones en tiempo real - Integración con múltiples plataformas (WhatsApp, Telegram, Email) - Sistema de canales y mensajes - Webhooks para plataformas externas - Socket.IO para comunicación en tiempo real - Gestión de archivos y multimedia ## Instalación ```bash npm install @skailan/conversations ``` ## Uso ### Importación básica ```typescript import { ConversationService } from '@skailan/conversations'; const conversationService = new ConversationService(); // Crear una nueva conversación const conversation = await conversationService.createConversation({ contactId: "contact-123", platform: "whatsapp", organizationId: "org-123" }); ``` ### Configuración de variables de entorno ```env DATABASE_URL="postgresql://user:password@localhost:5432/skailan" REDIS_URL="redis://localhost:6379" TELEGRAM_BOT_TOKEN="your-telegram-bot-token" ``` ## API Endpoints ### Conversaciones - `GET /conversations` - Listar conversaciones - `POST /conversations` - Crear conversación - `GET /conversations/:id` - Obtener conversación - `PUT /conversations/:id` - Actualizar conversación - `DELETE /conversations/:id` - Eliminar conversación ### Mensajes - `GET /conversations/:id/messages` - Listar mensajes - `POST /conversations/:id/messages` - Enviar mensaje - `GET /messages/:id` - Obtener mensaje - `PUT /messages/:id` - Actualizar mensaje ### Canales - `GET /channels` - Listar canales - `POST /channels` - Crear canal - `GET /channels/:id` - Obtener canal - `PUT /channels/:id` - Actualizar canal ### Webhooks - `POST /webhooks/telegram` - Webhook de Telegram - `POST /webhooks/whatsapp` - Webhook de WhatsApp ## Características - **Tiempo real**: Socket.IO para comunicación instantánea - **Múltiples plataformas**: Soporte para WhatsApp, Telegram, Email - **Gestión de archivos**: Subida y gestión de multimedia - **Webhooks**: Integración con plataformas externas - **Multitenancy**: Aislamiento de datos por organización - **Historial completo**: Registro de todas las interacciones ## Dependencias - Express.js para el servidor web - Socket.IO para comunicación en tiempo real - Prisma para ORM - Redis para cache y sesiones - @skailan/core para autenticación ## Desarrollo ```bash # Instalar dependencias npm install # Ejecutar en modo desarrollo npm run dev # Construir para producción npm run build # Generar cliente Prisma npm run prisma:generate ``` ## Ejemplos de uso ### Enviar mensaje a través de WhatsApp ```typescript import { ConversationService } from '@skailan/conversations'; const conversationService = new ConversationService(); const message = await conversationService.sendMessage({ conversationId: "conv-123", content: "Hola, ¿cómo estás?", type: "text", platform: "whatsapp" }); ``` ### Escuchar mensajes en tiempo real ```typescript import { io } from 'socket.io-client'; const socket = io('http://localhost:3007'); socket.on('new_message', (message) => { console.log('Nuevo mensaje:', message); }); socket.on('conversation_updated', (conversation) => { console.log('Conversación actualizada:', conversation); }); ``` ## Webhooks ### Telegram Webhook ```typescript // Configurar webhook de Telegram app.post('/webhooks/telegram', async (req, res) => { const { message } = req.body; await conversationService.processTelegramMessage(message); res.status(200).send('OK'); }); ``` ## Licencia MIT