Skip to main content

Constantes

src/app/core/constants/ — todas exportadas por index.ts.

API​

// api.constants.ts
API_PREFIX = 'api'
API_VERSION = '1'
API_PATHS = {
AUTH: 'auth',
USER: 'users',
TENANT: 'tenants',
ROLE: 'roles',
PERMISSION: 'permissions',
ROLE_PERMISSION:'role-permissions',
MODULE: 'modules',
API_KEY: 'api-keys',
MESSAGE: 'messages',
FILE: 'files',
CONTACT: 'contacts',
QUICK_RESPONSE: 'quick-responses',
CHAT: 'chat',
LABEL: 'labels',
}

Paginación​

// pagination.constants.ts
DEFAULT_PAGE_SIZE = 10
MAX_RESULTS = 100

Mensajes​

// message.constants.ts
MESSAGE_TYPE = {
CHAT: 'CHAT',
MEDIA: 'MEDIA',
SYSTEM: 'SYSTEM',
}

MESSAGE_SEND_TYPE = {
CONTACT: 'CONTACT', // mensaje enviado por el cliente externo
AGENT: 'AGENT', // mensaje enviado por el agente
SYSTEM: 'SYSTEM', // mensaje automático del sistema
}

MESSAGE_ACK = {
SENT: 'SENT',
RECEIVED: 'RECEIVED',
READ: 'READ',
}

Chat (WebSocket)​

// chat.constants.ts
SOCKET_TIMEOUT = 30000 // ms sin actividad antes de desconectar
REVALIDATION_INTERVAL = 60000 // ms entre revalidaciones de token
DEFAULT_LANGUAGE = 'es'

Tickets​

// ticket.constants.ts
TICKET_STATUS = {
OPEN: 'OPEN',
IN_PROGRESS:'IN_PROGRESS',
CLOSED: 'CLOSED',
}

TICKET_PRIORITY = {
LOW: 'LOW',
MEDIUM: 'MEDIUM',
HIGH: 'HIGH',
}

Tenant​

// tenant.constants.ts
TENANT_STATUS = {
ACTIVE: 'ACTIVE',
INACTIVE: 'INACTIVE',
SUSPENDED:'SUSPENDED',
}

Archivos​

// file.constants.ts
// Tipos MIME permitidos y tamaño máximo de subida
MAX_FILE_SIZE = 10 * 1024 * 1024 // 10 MB
ALLOWED_MIME_TYPES = ['image/jpeg', 'image/png', 'application/pdf', ...]

Mensajes (ack y fallos)​

// message.constants.ts
MESSAGE_ACK = { SENT, DELIVERED, READ, FAILED } // 'sent' | 'delivered' | 'read' | 'failed'
MESSAGE_ACK_CREATABLE_VALUES // MESSAGE_ACK sin FAILED (validación del DTO)
MESSAGE_FAILURE_REASON = {
OUT_OF_WINDOW, AUTH_ERROR, RATE_LIMITED,
UNSUPPORTED_MEDIA, RECIPIENT_UNAVAILABLE, UNKNOWN,
} // valores en snake_case
SYSTEM_MESSAGE_AUTHOR = { SYSTEM, CONNECTION, DEPARTMENT } // 'system' | 'connection' | 'department'

Colas​

// queue.constants.ts
QUEUE_NAMES = { SCHEDULED_MESSAGE: 'scheduled-message', META_WEBHOOK: 'meta-webhook' }
META_WEBHOOK_QUEUE_DEFAULTS = { ECHO_DELAY_MS: 2000, DEDUPE_WINDOW_S: 3600,
ENQUEUE_TIMEOUT_MS: 3000, MAX_ATTEMPTS: 5, BACKOFF_MS: 5000 }
INBOUND_LOCK_DEFAULTS = { KEY_PREFIX: 'inbound-lock', TTL_MS: 10000,
RETRY_MS: 50, COMMAND_TIMEOUT_MS: 500 }

API paths nuevos​

API_PATHS.WEBHOOKS_META = 'webhooks/meta' y API_PATHS.META_OAUTH = 'meta/oauth' (api.constants.ts).