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', ...]