skailan-conversations
v1.0.0
Published
Servicio de conversaciones y mensajería para Skailan
Downloads
6
Maintainers
Readme
@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
npm install @skailan/conversationsUso
Importación básica
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
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 conversacionesPOST /conversations- Crear conversaciónGET /conversations/:id- Obtener conversaciónPUT /conversations/:id- Actualizar conversaciónDELETE /conversations/:id- Eliminar conversación
Mensajes
GET /conversations/:id/messages- Listar mensajesPOST /conversations/:id/messages- Enviar mensajeGET /messages/:id- Obtener mensajePUT /messages/:id- Actualizar mensaje
Canales
GET /channels- Listar canalesPOST /channels- Crear canalGET /channels/:id- Obtener canalPUT /channels/:id- Actualizar canal
Webhooks
POST /webhooks/telegram- Webhook de TelegramPOST /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
# Instalar dependencias
npm install
# Ejecutar en modo desarrollo
npm run dev
# Construir para producción
npm run build
# Generar cliente Prisma
npm run prisma:generateEjemplos de uso
Enviar mensaje a través de WhatsApp
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
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
// 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
