skailan-conversations
Version:
Servicio de conversaciones y mensajería para Skailan
156 lines (111 loc) • 3.68 kB
Markdown
# @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