skailan-contacts
Version:
Servicio de gestión de contactos para Skailan
135 lines (99 loc) • 3.19 kB
Markdown
# @skailan/contacts
Servicio de gestión de contactos para la plataforma Skailan.
## Descripción
Este módulo proporciona funcionalidades completas de gestión de contactos para la plataforma Skailan. Incluye:
- Gestión de contactos individuales y empresas
- Categorización y etiquetado de contactos
- Integración con múltiples plataformas (WhatsApp, Telegram, Email)
- Historial de interacciones
- Gestión de información de contacto
## Instalación
```bash
npm install @skailan/contacts
```
## Uso
### Importación básica
```typescript
import { ContactService } from '@skailan/contacts';
const contactService = new ContactService();
// Crear un nuevo contacto
const contact = await contactService.createContact({
name: "Juan Pérez",
email: "juan@ejemplo.com",
phone: "+1234567890",
organizationId: "org-123"
});
```
### Configuración de variables de entorno
```env
DATABASE_URL="postgresql://user:password@localhost:5432/skailan"
```
## API Endpoints
### Contactos
- `GET /contacts` - Listar contactos
- `POST /contacts` - Crear contacto
- `GET /contacts/:id` - Obtener contacto
- `PUT /contacts/:id` - Actualizar contacto
- `DELETE /contacts/:id` - Eliminar contacto
### Plataformas de contacto
- `GET /contact-platforms` - Listar plataformas
- `POST /contact-platforms` - Crear plataforma
- `GET /contact-platforms/:id` - Obtener plataforma
- `PUT /contact-platforms/:id` - Actualizar plataforma
### Etiquetas de contacto
- `GET /contact-tags` - Listar etiquetas
- `POST /contact-tags` - Crear etiqueta
- `GET /contact-tags/:id` - Obtener etiqueta
- `PUT /contact-tags/:id` - Actualizar etiqueta
## Características
- **Gestión completa de contactos**: CRUD completo para contactos
- **Plataformas múltiples**: Soporte para WhatsApp, Telegram, Email, etc.
- **Sistema de etiquetas**: Categorización flexible de contactos
- **Multitenancy**: Aislamiento de datos por organización
- **Validación robusta**: Validación de datos de entrada
- **Búsqueda avanzada**: Filtros y búsqueda por múltiples criterios
## Dependencias
- Express.js para el servidor web
- Prisma para ORM
- UUID para generación de IDs
- @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
### Crear contacto con plataforma
```typescript
import { ContactService } from '@skailan/contacts';
const contactService = new ContactService();
const contact = await contactService.createContact({
name: "María García",
email: "maria@empresa.com",
phone: "+1234567890",
organizationId: "org-123",
platforms: [
{
type: "whatsapp",
identifier: "+1234567890"
},
{
type: "telegram",
identifier: "@mariagarcia"
}
],
tags: ["cliente", "vip"]
});
```
### Buscar contactos por etiqueta
```typescript
const contacts = await contactService.findByTag("vip", "org-123");
```
## Licencia
MIT