Skip to main content

Módulo Ticket

src/app/modules/ticket/

Representa una conversación/caso de soporte entre un contacto y los agentes.

Modelo — Ticket

CampoTipoDescripción
_idObjectIdID de MongoDB
tenantIdObjectId → Tenant
contactIdObjectId → ContactContacto asociado
statusstringOPEN | IN_PROGRESS | CLOSED
prioritystringLOW | MEDIUM | HIGH
lastMessageObjectId → MessageÚltimo mensaje (para previews)
unreadCountnumberMensajes no leídos por el agente
createdAtDate
updatedAtDate

Endpoints

MétodoRutaAuthDescripción
GET/api/v1/tickets@Auth()Lista tickets (filtrable)
GET/api/v1/tickets/:id@Auth()Obtiene un ticket
PATCH/api/v1/tickets/:id@Auth()Actualiza status/priority
DELETE/api/v1/tickets/:id@Auth()Elimina ticket

TicketsFilterDto

Permite filtrar tickets por status, priority, contactId, tenantId y paginar.

Creación automática

El ChatGateway crea tickets automáticamente cuando un CONTACT inicia una conversación nueva (evento AUTHENTICATE + CREATE_ROOM). No se crean manualmente.

Tests

El módulo incluye:

  • ticket.service.spec.ts — tests unitarios del servicio
  • ticket.service.integration.spec.ts — tests de integración (usa BD real, controlado por TESTING)