npm package: @skailan/email
Description: Servicio de email para Skailan
Author: Skailan Team
Latest version: 1.0.0

# @skailan/email

Servicio de email para la plataforma Skailan.

## Descripción

Este módulo proporciona funcionalidades completas de envío de emails para la plataforma Skailan. Incluye:

- Envío de emails transaccionales y de marketing
- Plantillas personalizables
- Integración con Resend para envío confiable
- Gestión de listas de distribución
- Seguimiento de apertura y clics
- Notificaciones automáticas

## Instalación

```bash
npm install @skailan/email
```

## Uso

### Importación básica

```typescript
import { EmailService } from '@skailan/email';

const emailService = new EmailService();

// Enviar email simple
await emailService.sendEmail({
  to: "cliente@ejemplo.com",
  subject: "Bienvenido a Skailan",
  template: "welcome",
  data: {
    name: "Juan Pérez",
    organization: "Empresa ABC"
  }
});
```

### Configuración de variables de entorno

```env
RESEND_API_KEY="your-resend-api-key"
DATABASE_URL="postgresql://user:password@localhost:5432/skailan"
```

## API Endpoints

### Emails
- `POST /emails/send` - Enviar email
- `GET /emails` - Listar emails enviados
- `GET /emails/:id` - Obtener email
- `POST /emails/bulk` - Envío masivo

### Plantillas
- `GET /templates` - Listar plantillas
- `POST /templates` - Crear plantilla
- `GET /templates/:id` - Obtener plantilla
- `PUT /templates/:id` - Actualizar plantilla

### Listas de distribución
- `GET /lists` - Listar listas
- `POST /lists` - Crear lista
- `GET /lists/:id/subscribers` - Listar suscriptores
- `POST /lists/:id/subscribers` - Agregar suscriptor

## Características

- **Envío confiable**: Integración con Resend para alta entregabilidad
- **Plantillas dinámicas**: Sistema de templates con variables
- **Envío masivo**: Soporte para campañas de email marketing
- **Seguimiento**: Tracking de apertura y clics
- **Notificaciones**: Emails automáticos para eventos del sistema
- **Multitenancy**: Aislamiento por organización

## Dependencias

- Express.js para el servidor web
- Resend para envío de emails
- Prisma para ORM
- @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
```

## Ejemplos de uso

### Enviar email de bienvenida

```typescript
import { EmailService } from '@skailan/email';

const emailService = new EmailService();

await emailService.sendWelcomeEmail({
  to: "nuevo@cliente.com",
  name: "María García",
  organizationName: "Empresa XYZ",
  loginUrl: "https://app.skailan.com/login"
});
```

### Enviar notificación de conversación

```typescript
await emailService.sendConversationNotification({
  to: "agente@empresa.com",
  contactName: "Juan Pérez",
  platform: "WhatsApp",
  message: "Hola, necesito información sobre sus servicios",
  conversationUrl: "https://app.skailan.com/conversations/123"
});
```

### Enviar cotización por email

```typescript
await emailService.sendQuote({
  to: "cliente@empresa.com",
  contactName: "Ana López",
  quoteNumber: "Q-2024-001",
  totalAmount: 25000,
  validUntil: "2024-02-15",
  quoteUrl: "https://app.skailan.com/quotes/123"
});
```

## Plantillas disponibles

- `welcome` - Email de bienvenida
- `password-reset` - Restablecimiento de contraseña
- `conversation-notification` - Notificación de nueva conversación
- `quote` - Envío de cotización
- `invoice` - Envío de factura
- `marketing` - Email de marketing

## Licencia

MIT