grm-shared-library 1.1.201 → 1.1.203
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/index.js +1 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/kafka/topics.js +26 -0
- package/dist/cjs/kafka/topics.js.map +1 -1
- package/dist/cjs/modules/common/constants/service.const.js +1 -0
- package/dist/cjs/modules/common/constants/service.const.js.map +1 -1
- package/dist/cjs/modules/permission/data/permissions.data.js +26 -0
- package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js +40 -0
- package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
- package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
- package/dist/cjs/modules/role/data/roles.data.js +85 -0
- package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
- package/dist/cjs/modules/socket/enums/redis-channel-name.enum.js +1 -0
- package/dist/cjs/modules/socket/enums/redis-channel-name.enum.js.map +1 -1
- package/dist/cjs/modules/socket/enums/room-type.enum.js +8 -0
- package/dist/cjs/modules/socket/enums/room-type.enum.js.map +1 -1
- package/dist/cjs/modules/socket/enums/socket-event-name.enum.js +5 -0
- package/dist/cjs/modules/socket/enums/socket-event-name.enum.js.map +1 -1
- package/dist/cjs/modules/support/constants/support-defaults.const.js +139 -0
- package/dist/cjs/modules/support/constants/support-defaults.const.js.map +1 -0
- package/dist/cjs/modules/support/constants/support-kafka.const.js +51 -0
- package/dist/cjs/modules/support/constants/support-kafka.const.js.map +1 -0
- package/dist/cjs/modules/support/dtos/create-support-ticket-message.dto.js +82 -0
- package/dist/cjs/modules/support/dtos/create-support-ticket-message.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/create-support-ticket.dto.js +169 -0
- package/dist/cjs/modules/support/dtos/create-support-ticket.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/customer-feedback.dto.js +401 -0
- package/dist/cjs/modules/support/dtos/customer-feedback.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-configuration.dto.js +732 -0
- package/dist/cjs/modules/support/dtos/support-configuration.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-related-entity.dto.js +38 -0
- package/dist/cjs/modules/support/dtos/support-related-entity.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-report-query.dto.js +127 -0
- package/dist/cjs/modules/support/dtos/support-report-query.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-sync.dto.js +175 -0
- package/dist/cjs/modules/support/dtos/support-sync.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-ticket-actions.dto.js +191 -0
- package/dist/cjs/modules/support/dtos/support-ticket-actions.dto.js.map +1 -0
- package/dist/cjs/modules/support/dtos/support-ticket-query.dto.js +225 -0
- package/dist/cjs/modules/support/dtos/support-ticket-query.dto.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-audit-action.enum.js +87 -0
- package/dist/cjs/modules/support/enums/support-audit-action.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-feedback.enum.js +110 -0
- package/dist/cjs/modules/support/enums/support-feedback.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-provider-code.enum.js +66 -0
- package/dist/cjs/modules/support/enums/support-provider-code.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-related-entity-type.enum.js +50 -0
- package/dist/cjs/modules/support/enums/support-related-entity-type.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-routing.enum.js +58 -0
- package/dist/cjs/modules/support/enums/support-routing.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-sla.enum.js +55 -0
- package/dist/cjs/modules/support/enums/support-sla.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-sync.enum.js +133 -0
- package/dist/cjs/modules/support/enums/support-sync.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-ticket-channel.enum.js +36 -0
- package/dist/cjs/modules/support/enums/support-ticket-channel.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-ticket-message.enum.js +54 -0
- package/dist/cjs/modules/support/enums/support-ticket-message.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-ticket-priority.enum.js +41 -0
- package/dist/cjs/modules/support/enums/support-ticket-priority.enum.js.map +1 -0
- package/dist/cjs/modules/support/enums/support-ticket-status.enum.js +138 -0
- package/dist/cjs/modules/support/enums/support-ticket-status.enum.js.map +1 -0
- package/dist/cjs/modules/support/index.js +60 -0
- package/dist/cjs/modules/support/index.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/customer-feedback.js +3 -0
- package/dist/cjs/modules/support/interfaces/customer-feedback.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-configuration.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-configuration.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-events.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-events.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-provider-descriptor.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-provider-descriptor.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-realtime.js +18 -0
- package/dist/cjs/modules/support/interfaces/support-realtime.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-reports.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-reports.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-sync.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-sync.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-ticket-message.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-ticket-message.js.map +1 -0
- package/dist/cjs/modules/support/interfaces/support-ticket.js +3 -0
- package/dist/cjs/modules/support/interfaces/support-ticket.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-feedback.util.js +66 -0
- package/dist/cjs/modules/support/utils/support-feedback.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-redaction.util.js +173 -0
- package/dist/cjs/modules/support/utils/support-redaction.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-routing.util.js +87 -0
- package/dist/cjs/modules/support/utils/support-routing.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-sla.util.js +239 -0
- package/dist/cjs/modules/support/utils/support-sla.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-status.util.js +93 -0
- package/dist/cjs/modules/support/utils/support-status.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-sync.util.js +151 -0
- package/dist/cjs/modules/support/utils/support-sync.util.js.map +1 -0
- package/dist/cjs/modules/support/utils/support-ticket-number.util.js +61 -0
- package/dist/cjs/modules/support/utils/support-ticket-number.util.js.map +1 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/kafka/topics.js +26 -0
- package/dist/esm/kafka/topics.js.map +1 -1
- package/dist/esm/modules/common/constants/service.const.js +1 -0
- package/dist/esm/modules/common/constants/service.const.js.map +1 -1
- package/dist/esm/modules/permission/data/permissions.data.js +26 -0
- package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
- package/dist/esm/modules/permission/enums/permission-actions.enum.js +40 -0
- package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
- package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
- package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
- package/dist/esm/modules/role/data/roles.data.js +85 -0
- package/dist/esm/modules/role/data/roles.data.js.map +1 -1
- package/dist/esm/modules/socket/enums/redis-channel-name.enum.js +1 -0
- package/dist/esm/modules/socket/enums/redis-channel-name.enum.js.map +1 -1
- package/dist/esm/modules/socket/enums/room-type.enum.js +8 -0
- package/dist/esm/modules/socket/enums/room-type.enum.js.map +1 -1
- package/dist/esm/modules/socket/enums/socket-event-name.enum.js +5 -0
- package/dist/esm/modules/socket/enums/socket-event-name.enum.js.map +1 -1
- package/dist/esm/modules/support/constants/support-defaults.const.js +136 -0
- package/dist/esm/modules/support/constants/support-defaults.const.js.map +1 -0
- package/dist/esm/modules/support/constants/support-kafka.const.js +48 -0
- package/dist/esm/modules/support/constants/support-kafka.const.js.map +1 -0
- package/dist/esm/modules/support/dtos/create-support-ticket-message.dto.js +77 -0
- package/dist/esm/modules/support/dtos/create-support-ticket-message.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/create-support-ticket.dto.js +165 -0
- package/dist/esm/modules/support/dtos/create-support-ticket.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/customer-feedback.dto.js +392 -0
- package/dist/esm/modules/support/dtos/customer-feedback.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-configuration.dto.js +716 -0
- package/dist/esm/modules/support/dtos/support-configuration.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-related-entity.dto.js +34 -0
- package/dist/esm/modules/support/dtos/support-related-entity.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-report-query.dto.js +123 -0
- package/dist/esm/modules/support/dtos/support-report-query.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-sync.dto.js +169 -0
- package/dist/esm/modules/support/dtos/support-sync.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-ticket-actions.dto.js +180 -0
- package/dist/esm/modules/support/dtos/support-ticket-actions.dto.js.map +1 -0
- package/dist/esm/modules/support/dtos/support-ticket-query.dto.js +221 -0
- package/dist/esm/modules/support/dtos/support-ticket-query.dto.js.map +1 -0
- package/dist/esm/modules/support/enums/support-audit-action.enum.js +84 -0
- package/dist/esm/modules/support/enums/support-audit-action.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-feedback.enum.js +107 -0
- package/dist/esm/modules/support/enums/support-feedback.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-provider-code.enum.js +63 -0
- package/dist/esm/modules/support/enums/support-provider-code.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-related-entity-type.enum.js +47 -0
- package/dist/esm/modules/support/enums/support-related-entity-type.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-routing.enum.js +55 -0
- package/dist/esm/modules/support/enums/support-routing.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-sla.enum.js +52 -0
- package/dist/esm/modules/support/enums/support-sla.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-sync.enum.js +130 -0
- package/dist/esm/modules/support/enums/support-sync.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-ticket-channel.enum.js +33 -0
- package/dist/esm/modules/support/enums/support-ticket-channel.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-ticket-message.enum.js +51 -0
- package/dist/esm/modules/support/enums/support-ticket-message.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-ticket-priority.enum.js +38 -0
- package/dist/esm/modules/support/enums/support-ticket-priority.enum.js.map +1 -0
- package/dist/esm/modules/support/enums/support-ticket-status.enum.js +135 -0
- package/dist/esm/modules/support/enums/support-ticket-status.enum.js.map +1 -0
- package/dist/esm/modules/support/index.js +44 -0
- package/dist/esm/modules/support/index.js.map +1 -0
- package/dist/esm/modules/support/interfaces/customer-feedback.js +2 -0
- package/dist/esm/modules/support/interfaces/customer-feedback.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-configuration.js +2 -0
- package/dist/esm/modules/support/interfaces/support-configuration.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-events.js +2 -0
- package/dist/esm/modules/support/interfaces/support-events.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-provider-descriptor.js +2 -0
- package/dist/esm/modules/support/interfaces/support-provider-descriptor.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-realtime.js +15 -0
- package/dist/esm/modules/support/interfaces/support-realtime.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-reports.js +2 -0
- package/dist/esm/modules/support/interfaces/support-reports.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-sync.js +2 -0
- package/dist/esm/modules/support/interfaces/support-sync.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-ticket-message.js +2 -0
- package/dist/esm/modules/support/interfaces/support-ticket-message.js.map +1 -0
- package/dist/esm/modules/support/interfaces/support-ticket.js +2 -0
- package/dist/esm/modules/support/interfaces/support-ticket.js.map +1 -0
- package/dist/esm/modules/support/utils/support-feedback.util.js +60 -0
- package/dist/esm/modules/support/utils/support-feedback.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-redaction.util.js +164 -0
- package/dist/esm/modules/support/utils/support-redaction.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-routing.util.js +82 -0
- package/dist/esm/modules/support/utils/support-routing.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-sla.util.js +229 -0
- package/dist/esm/modules/support/utils/support-sla.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-status.util.js +81 -0
- package/dist/esm/modules/support/utils/support-status.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-sync.util.js +142 -0
- package/dist/esm/modules/support/utils/support-sync.util.js.map +1 -0
- package/dist/esm/modules/support/utils/support-ticket-number.util.js +56 -0
- package/dist/esm/modules/support/utils/support-ticket-number.util.js.map +1 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/kafka/topics.d.ts +21 -0
- package/dist/types/modules/common/constants/service.const.d.ts +4 -0
- package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +21 -0
- package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
- package/dist/types/modules/socket/enums/redis-channel-name.enum.d.ts +2 -1
- package/dist/types/modules/socket/enums/room-type.enum.d.ts +8 -0
- package/dist/types/modules/socket/enums/socket-event-name.enum.d.ts +2 -1
- package/dist/types/modules/support/constants/support-defaults.const.d.ts +129 -0
- package/dist/types/modules/support/constants/support-kafka.const.d.ts +47 -0
- package/dist/types/modules/support/dtos/create-support-ticket-message.dto.d.ts +30 -0
- package/dist/types/modules/support/dtos/create-support-ticket.dto.d.ts +35 -0
- package/dist/types/modules/support/dtos/customer-feedback.dto.d.ts +83 -0
- package/dist/types/modules/support/dtos/support-configuration.dto.d.ts +130 -0
- package/dist/types/modules/support/dtos/support-related-entity.dto.d.ts +13 -0
- package/dist/types/modules/support/dtos/support-report-query.dto.d.ts +29 -0
- package/dist/types/modules/support/dtos/support-sync.dto.d.ts +40 -0
- package/dist/types/modules/support/dtos/support-ticket-actions.dto.d.ts +61 -0
- package/dist/types/modules/support/dtos/support-ticket-query.dto.d.ts +41 -0
- package/dist/types/modules/support/enums/support-audit-action.enum.d.ts +80 -0
- package/dist/types/modules/support/enums/support-feedback.enum.d.ts +65 -0
- package/dist/types/modules/support/enums/support-provider-code.enum.d.ts +57 -0
- package/dist/types/modules/support/enums/support-related-entity-type.enum.d.ts +41 -0
- package/dist/types/modules/support/enums/support-routing.enum.d.ts +48 -0
- package/dist/types/modules/support/enums/support-sla.enum.d.ts +47 -0
- package/dist/types/modules/support/enums/support-sync.enum.d.ts +108 -0
- package/dist/types/modules/support/enums/support-ticket-channel.enum.d.ts +30 -0
- package/dist/types/modules/support/enums/support-ticket-message.enum.d.ts +42 -0
- package/dist/types/modules/support/enums/support-ticket-priority.enum.d.ts +24 -0
- package/dist/types/modules/support/enums/support-ticket-status.enum.d.ts +58 -0
- package/dist/types/modules/support/index.d.ts +38 -0
- package/dist/types/modules/support/interfaces/customer-feedback.d.ts +115 -0
- package/dist/types/modules/support/interfaces/support-configuration.d.ts +170 -0
- package/dist/types/modules/support/interfaces/support-events.d.ts +126 -0
- package/dist/types/modules/support/interfaces/support-provider-descriptor.d.ts +92 -0
- package/dist/types/modules/support/interfaces/support-realtime.d.ts +65 -0
- package/dist/types/modules/support/interfaces/support-reports.d.ts +122 -0
- package/dist/types/modules/support/interfaces/support-sync.d.ts +105 -0
- package/dist/types/modules/support/interfaces/support-ticket-message.d.ts +66 -0
- package/dist/types/modules/support/interfaces/support-ticket.d.ts +180 -0
- package/dist/types/modules/support/utils/support-feedback.util.d.ts +23 -0
- package/dist/types/modules/support/utils/support-redaction.util.d.ts +48 -0
- package/dist/types/modules/support/utils/support-routing.util.d.ts +50 -0
- package/dist/types/modules/support/utils/support-sla.util.d.ts +69 -0
- package/dist/types/modules/support/utils/support-status.util.d.ts +44 -0
- package/dist/types/modules/support/utils/support-sync.util.d.ts +76 -0
- package/dist/types/modules/support/utils/support-ticket-number.util.d.ts +39 -0
- package/package.json +1 -1
|
@@ -45,6 +45,30 @@ export const ROLES_DATA = [
|
|
|
45
45
|
PermissionActions.READ_USER,
|
|
46
46
|
PermissionActions.UPDATE_USER,
|
|
47
47
|
PermissionActions.DELETE_USER,
|
|
48
|
+
//Support: an organization administrator runs the support desk -
|
|
49
|
+
//works tickets, and owns the queues, teams, SLA policy and the
|
|
50
|
+
//helpdesk synchronization behind them.
|
|
51
|
+
PermissionActions.CREATE_SUPPORT_TICKET,
|
|
52
|
+
PermissionActions.READ_SUPPORT_TICKET,
|
|
53
|
+
PermissionActions.UPDATE_SUPPORT_TICKET,
|
|
54
|
+
PermissionActions.ASSIGN_SUPPORT_TICKET,
|
|
55
|
+
PermissionActions.REPLY_SUPPORT_TICKET,
|
|
56
|
+
PermissionActions.NOTE_SUPPORT_TICKET,
|
|
57
|
+
PermissionActions.CHANGE_STATUS_SUPPORT_TICKET,
|
|
58
|
+
PermissionActions.CHANGE_PRIORITY_SUPPORT_TICKET,
|
|
59
|
+
PermissionActions.CLOSE_SUPPORT_TICKET,
|
|
60
|
+
PermissionActions.REOPEN_SUPPORT_TICKET,
|
|
61
|
+
PermissionActions.READ_SUPPORT_FEEDBACK,
|
|
62
|
+
PermissionActions.REVIEW_SUPPORT_FEEDBACK,
|
|
63
|
+
PermissionActions.RESPOND_SUPPORT_FEEDBACK,
|
|
64
|
+
PermissionActions.CONVERT_SUPPORT_FEEDBACK,
|
|
65
|
+
PermissionActions.MANAGE_SUPPORT_QUEUE,
|
|
66
|
+
PermissionActions.MANAGE_SUPPORT_TEAM,
|
|
67
|
+
PermissionActions.MANAGE_SUPPORT_SLA,
|
|
68
|
+
PermissionActions.MANAGE_SUPPORT_CONFIGURATION,
|
|
69
|
+
PermissionActions.READ_SUPPORT_REPORT,
|
|
70
|
+
PermissionActions.READ_SUPPORT_SYNC,
|
|
71
|
+
PermissionActions.MANAGE_SUPPORT_SYNC,
|
|
48
72
|
//Incident
|
|
49
73
|
PermissionActions.CREATE_INCIDENT,
|
|
50
74
|
PermissionActions.READ_INCIDENT,
|
|
@@ -100,6 +124,30 @@ export const ROLES_DATA = [
|
|
|
100
124
|
PermissionActions.READ_USER,
|
|
101
125
|
PermissionActions.UPDATE_USER,
|
|
102
126
|
PermissionActions.DELETE_USER,
|
|
127
|
+
//Support: an organization administrator runs the support desk -
|
|
128
|
+
//works tickets, and owns the queues, teams, SLA policy and the
|
|
129
|
+
//helpdesk synchronization behind them.
|
|
130
|
+
PermissionActions.CREATE_SUPPORT_TICKET,
|
|
131
|
+
PermissionActions.READ_SUPPORT_TICKET,
|
|
132
|
+
PermissionActions.UPDATE_SUPPORT_TICKET,
|
|
133
|
+
PermissionActions.ASSIGN_SUPPORT_TICKET,
|
|
134
|
+
PermissionActions.REPLY_SUPPORT_TICKET,
|
|
135
|
+
PermissionActions.NOTE_SUPPORT_TICKET,
|
|
136
|
+
PermissionActions.CHANGE_STATUS_SUPPORT_TICKET,
|
|
137
|
+
PermissionActions.CHANGE_PRIORITY_SUPPORT_TICKET,
|
|
138
|
+
PermissionActions.CLOSE_SUPPORT_TICKET,
|
|
139
|
+
PermissionActions.REOPEN_SUPPORT_TICKET,
|
|
140
|
+
PermissionActions.READ_SUPPORT_FEEDBACK,
|
|
141
|
+
PermissionActions.REVIEW_SUPPORT_FEEDBACK,
|
|
142
|
+
PermissionActions.RESPOND_SUPPORT_FEEDBACK,
|
|
143
|
+
PermissionActions.CONVERT_SUPPORT_FEEDBACK,
|
|
144
|
+
PermissionActions.MANAGE_SUPPORT_QUEUE,
|
|
145
|
+
PermissionActions.MANAGE_SUPPORT_TEAM,
|
|
146
|
+
PermissionActions.MANAGE_SUPPORT_SLA,
|
|
147
|
+
PermissionActions.MANAGE_SUPPORT_CONFIGURATION,
|
|
148
|
+
PermissionActions.READ_SUPPORT_REPORT,
|
|
149
|
+
PermissionActions.READ_SUPPORT_SYNC,
|
|
150
|
+
PermissionActions.MANAGE_SUPPORT_SYNC,
|
|
103
151
|
//Incident
|
|
104
152
|
PermissionActions.CREATE_INCIDENT,
|
|
105
153
|
PermissionActions.READ_INCIDENT,
|
|
@@ -127,6 +175,8 @@ export const ROLES_DATA = [
|
|
|
127
175
|
PermissionActions.READ_PARTNER,
|
|
128
176
|
//Partner dispatch
|
|
129
177
|
PermissionActions.READ_PARTNER_DISPATCH,
|
|
178
|
+
//Partner membership
|
|
179
|
+
PermissionActions.READ_PARTNER_MEMBERSHIP,
|
|
130
180
|
//control centre
|
|
131
181
|
PermissionActions.READ_CONTROL_CENTRE,
|
|
132
182
|
//Zone
|
|
@@ -135,6 +185,10 @@ export const ROLES_DATA = [
|
|
|
135
185
|
PermissionActions.READ_ROLE,
|
|
136
186
|
//User
|
|
137
187
|
PermissionActions.READ_USER,
|
|
188
|
+
//Support: sees the desk, changes nothing on it.
|
|
189
|
+
PermissionActions.READ_SUPPORT_TICKET,
|
|
190
|
+
PermissionActions.READ_SUPPORT_FEEDBACK,
|
|
191
|
+
PermissionActions.READ_SUPPORT_REPORT,
|
|
138
192
|
//Incident
|
|
139
193
|
PermissionActions.READ_INCIDENT,
|
|
140
194
|
//Incident Category Type
|
|
@@ -174,6 +228,25 @@ export const ROLES_DATA = [
|
|
|
174
228
|
PermissionActions.READ_USER,
|
|
175
229
|
PermissionActions.UPDATE_USER,
|
|
176
230
|
PermissionActions.DELETE_USER,
|
|
231
|
+
//Support: a control-centre administrator supervises the desk -
|
|
232
|
+
//assigns work and answers customers - but does not own the queue,
|
|
233
|
+
//team and SLA configuration, which is an organization-level decision.
|
|
234
|
+
PermissionActions.CREATE_SUPPORT_TICKET,
|
|
235
|
+
PermissionActions.READ_SUPPORT_TICKET,
|
|
236
|
+
PermissionActions.UPDATE_SUPPORT_TICKET,
|
|
237
|
+
PermissionActions.ASSIGN_SUPPORT_TICKET,
|
|
238
|
+
PermissionActions.REPLY_SUPPORT_TICKET,
|
|
239
|
+
PermissionActions.NOTE_SUPPORT_TICKET,
|
|
240
|
+
PermissionActions.CHANGE_STATUS_SUPPORT_TICKET,
|
|
241
|
+
PermissionActions.CHANGE_PRIORITY_SUPPORT_TICKET,
|
|
242
|
+
PermissionActions.CLOSE_SUPPORT_TICKET,
|
|
243
|
+
PermissionActions.REOPEN_SUPPORT_TICKET,
|
|
244
|
+
PermissionActions.READ_SUPPORT_FEEDBACK,
|
|
245
|
+
PermissionActions.REVIEW_SUPPORT_FEEDBACK,
|
|
246
|
+
PermissionActions.RESPOND_SUPPORT_FEEDBACK,
|
|
247
|
+
PermissionActions.CONVERT_SUPPORT_FEEDBACK,
|
|
248
|
+
PermissionActions.READ_SUPPORT_REPORT,
|
|
249
|
+
PermissionActions.READ_SUPPORT_SYNC,
|
|
177
250
|
//Incident
|
|
178
251
|
PermissionActions.CREATE_INCIDENT,
|
|
179
252
|
PermissionActions.READ_INCIDENT,
|
|
@@ -206,6 +279,18 @@ export const ROLES_DATA = [
|
|
|
206
279
|
PermissionActions.READ_ROLE,
|
|
207
280
|
//User
|
|
208
281
|
PermissionActions.READ_USER,
|
|
282
|
+
//Support: an operator works tickets. Reassigning a colleague's
|
|
283
|
+
//ticket and answering customer feedback stay with their supervisor.
|
|
284
|
+
PermissionActions.CREATE_SUPPORT_TICKET,
|
|
285
|
+
PermissionActions.READ_SUPPORT_TICKET,
|
|
286
|
+
PermissionActions.UPDATE_SUPPORT_TICKET,
|
|
287
|
+
PermissionActions.REPLY_SUPPORT_TICKET,
|
|
288
|
+
PermissionActions.NOTE_SUPPORT_TICKET,
|
|
289
|
+
PermissionActions.CHANGE_STATUS_SUPPORT_TICKET,
|
|
290
|
+
PermissionActions.CHANGE_PRIORITY_SUPPORT_TICKET,
|
|
291
|
+
PermissionActions.CLOSE_SUPPORT_TICKET,
|
|
292
|
+
PermissionActions.REOPEN_SUPPORT_TICKET,
|
|
293
|
+
PermissionActions.READ_SUPPORT_FEEDBACK,
|
|
209
294
|
//Incident
|
|
210
295
|
PermissionActions.CREATE_INCIDENT,
|
|
211
296
|
PermissionActions.READ_INCIDENT,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"roles.data.js","sourceRoot":"","sources":["../../../../../src/modules/role/data/roles.data.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,5 +6,6 @@ export var RedisChannelName;
|
|
|
6
6
|
RedisChannelName["TASKS"] = "realtime:tasks";
|
|
7
7
|
RedisChannelName["NEWSFEED"] = "realtime:newsfeed";
|
|
8
8
|
RedisChannelName["TRACKING"] = "realtime:tracking";
|
|
9
|
+
RedisChannelName["SUPPORT"] = "realtime:support";
|
|
9
10
|
})(RedisChannelName || (RedisChannelName = {}));
|
|
10
11
|
//# sourceMappingURL=redis-channel-name.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"redis-channel-name.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/redis-channel-name.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"redis-channel-name.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/redis-channel-name.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAQX;AARD,WAAY,gBAAgB;IACxB,oDAAgC,CAAA;IAChC,oEAAgD,CAAA;IAChD,sEAAkD,CAAA;IAClD,4CAAwB,CAAA;IACxB,kDAA8B,CAAA;IAC9B,kDAA8B,CAAA;IAC9B,gDAA4B,CAAA;AAChC,CAAC,EARW,gBAAgB,KAAhB,gBAAgB,QAQ3B"}
|
|
@@ -10,6 +10,14 @@ export var RoomTypeEnum;
|
|
|
10
10
|
* like count updates.
|
|
11
11
|
*/
|
|
12
12
|
RoomTypeEnum["POST"] = "post";
|
|
13
|
+
/**
|
|
14
|
+
* Support rooms use a two-part scheme under one prefix
|
|
15
|
+
* (support:ticket:{uuid}, support:queue:{uuid}, support:user:{id},
|
|
16
|
+
* support:org:{id}) and their own authorization, so they are matched by
|
|
17
|
+
* prefix rather than through this enum. Declared here so the prefix is
|
|
18
|
+
* registered in one place.
|
|
19
|
+
*/
|
|
20
|
+
RoomTypeEnum["SUPPORT"] = "support";
|
|
13
21
|
RoomTypeEnum["INVALID"] = "invalid";
|
|
14
22
|
})(RoomTypeEnum || (RoomTypeEnum = {}));
|
|
15
23
|
//# sourceMappingURL=room-type.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"room-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/room-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"room-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/room-type.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAoBX;AApBD,WAAY,YAAY;IACpB,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,gDAAgC,CAAA;IAChC,6BAAa,CAAA;IACb;;;;OAIG;IACH,6BAAa,CAAA;IACb;;;;;;OAMG;IACH,mCAAmB,CAAA;IACnB,mCAAmB,CAAA;AACvB,CAAC,EApBW,YAAY,KAAZ,YAAY,QAoBvB"}
|
|
@@ -11,5 +11,10 @@ export var SocketEventName;
|
|
|
11
11
|
SocketEventName["TRACKING_STATUS"] = "tracking:status";
|
|
12
12
|
SocketEventName["TRACKING_REMOVED"] = "tracking:removed";
|
|
13
13
|
SocketEventName["TRACKING_PROVIDER_HEALTH"] = "tracking:provider-health";
|
|
14
|
+
// Support tickets and customer feedback (clarion-support -> clarion-socket).
|
|
15
|
+
// One event name for every support update: the envelope carries the specific
|
|
16
|
+
// eventType, so a client adds a listener once and switches inside it rather
|
|
17
|
+
// than growing a listener per lifecycle step.
|
|
18
|
+
SocketEventName["SUPPORT_EVENT"] = "support.event";
|
|
14
19
|
})(SocketEventName || (SocketEventName = {}));
|
|
15
20
|
//# sourceMappingURL=socket-event-name.enum.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"socket-event-name.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/socket-event-name.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,
|
|
1
|
+
{"version":3,"file":"socket-event-name.enum.js","sourceRoot":"","sources":["../../../../../src/modules/socket/enums/socket-event-name.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,eAiBX;AAjBD,WAAY,eAAe;IACvB,oDAAiC,CAAA;IACjC,mEAAgD,CAAA;IAChD,qEAAkD,CAAA;IAClD,4CAAyB,CAAA;IACzB,4CAAyB,CAAA;IACzB,oDAAiC,CAAA;IACjC,sEAAsE;IACtE,0DAAuC,CAAA;IACvC,sDAAmC,CAAA;IACnC,wDAAqC,CAAA;IACrC,wEAAqD,CAAA;IACrD,6EAA6E;IAC7E,6EAA6E;IAC7E,4EAA4E;IAC5E,8CAA8C;IAC9C,kDAA+B,CAAA;AACnC,CAAC,EAjBW,eAAe,KAAf,eAAe,QAiB1B"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { SupportSlaClock } from '../enums/support-sla.enum';
|
|
2
|
+
import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
|
|
3
|
+
/**
|
|
4
|
+
* The platform's default SLA matrix.
|
|
5
|
+
*
|
|
6
|
+
* These are DEFAULTS, not business rules. An organization-level policy overrides
|
|
7
|
+
* them, a queue-level policy overrides that, and both are stored data an
|
|
8
|
+
* administrator edits. Nothing in the SLA engine reads a hard-coded number.
|
|
9
|
+
*
|
|
10
|
+
* Business figures are expressed in working minutes and resolved against the
|
|
11
|
+
* country's calendar: 8 business hours = 480, 1 business day = 480, 3 business
|
|
12
|
+
* days = 1440, 5 business days = 2400.
|
|
13
|
+
*/
|
|
14
|
+
export const SUPPORT_SLA_DEFAULTS = {
|
|
15
|
+
[SupportTicketPriority.CRITICAL]: {
|
|
16
|
+
firstResponseMinutes: 15,
|
|
17
|
+
resolutionMinutes: 4 * 60,
|
|
18
|
+
clock: SupportSlaClock.CALENDAR,
|
|
19
|
+
},
|
|
20
|
+
[SupportTicketPriority.URGENT]: {
|
|
21
|
+
firstResponseMinutes: 30,
|
|
22
|
+
resolutionMinutes: 8 * 60,
|
|
23
|
+
clock: SupportSlaClock.CALENDAR,
|
|
24
|
+
},
|
|
25
|
+
[SupportTicketPriority.HIGH]: {
|
|
26
|
+
firstResponseMinutes: 2 * 60,
|
|
27
|
+
resolutionMinutes: 24 * 60,
|
|
28
|
+
clock: SupportSlaClock.CALENDAR,
|
|
29
|
+
},
|
|
30
|
+
[SupportTicketPriority.NORMAL]: {
|
|
31
|
+
firstResponseMinutes: 8 * 60,
|
|
32
|
+
resolutionMinutes: 3 * 8 * 60,
|
|
33
|
+
clock: SupportSlaClock.BUSINESS,
|
|
34
|
+
},
|
|
35
|
+
[SupportTicketPriority.LOW]: {
|
|
36
|
+
firstResponseMinutes: 8 * 60,
|
|
37
|
+
resolutionMinutes: 5 * 8 * 60,
|
|
38
|
+
clock: SupportSlaClock.BUSINESS,
|
|
39
|
+
},
|
|
40
|
+
};
|
|
41
|
+
/**
|
|
42
|
+
* The working calendar an organization inherits when it has not defined its own.
|
|
43
|
+
*
|
|
44
|
+
* Monday to Friday, 08:00-17:00 local. `timezone` is resolved from the ticket's
|
|
45
|
+
* country rather than from the server, so a Kampala ticket is measured in
|
|
46
|
+
* Kampala hours; every supported country happens to sit in the same offset
|
|
47
|
+
* today, and writing it this way is what stops that being an assumption.
|
|
48
|
+
*/
|
|
49
|
+
export const SUPPORT_BUSINESS_CALENDAR_DEFAULTS = {
|
|
50
|
+
/** ISO weekday numbers, Monday = 1. */
|
|
51
|
+
workingDays: [1, 2, 3, 4, 5],
|
|
52
|
+
/** Minutes past local midnight when the working day opens. */
|
|
53
|
+
startMinuteOfDay: 8 * 60,
|
|
54
|
+
/** Minutes past local midnight when it closes. */
|
|
55
|
+
endMinuteOfDay: 17 * 60,
|
|
56
|
+
/** Working minutes in one day, derived - kept here so callers need not recompute. */
|
|
57
|
+
minutesPerWorkingDay: 9 * 60,
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* When a ticket starts showing as WARNING rather than ON_TRACK.
|
|
61
|
+
*
|
|
62
|
+
* 80% of the way to the deadline. Expressed as a fraction rather than a fixed
|
|
63
|
+
* lead time because a fixed one is meaningless across a matrix that spans
|
|
64
|
+
* fifteen minutes to five days.
|
|
65
|
+
*/
|
|
66
|
+
export const SUPPORT_SLA_WARNING_THRESHOLD_RATIO = 0.8;
|
|
67
|
+
/**
|
|
68
|
+
* How long after RESOLVED a ticket closes itself when the customer says nothing.
|
|
69
|
+
*
|
|
70
|
+
* A resolved ticket that nobody closes is invisible work: it stays out of the
|
|
71
|
+
* open counts but keeps its conversation open forever. Auto-closing is
|
|
72
|
+
* reversible - the customer can still reopen - which is why it is safe to do at
|
|
73
|
+
* all.
|
|
74
|
+
*/
|
|
75
|
+
export const SUPPORT_AUTO_CLOSE_RESOLVED_AFTER_HOURS = 72;
|
|
76
|
+
/** Provider synchronization behaviour. Every value is overridable per deployment. */
|
|
77
|
+
export const SUPPORT_SYNC_DEFAULTS = {
|
|
78
|
+
/** Attempts, including the first, before a transient failure is dead-lettered. */
|
|
79
|
+
MAX_ATTEMPTS: 8,
|
|
80
|
+
/** Base of the exponential backoff, in seconds: 20s, 40s, 80s, ... */
|
|
81
|
+
RETRY_BASE_SECONDS: 20,
|
|
82
|
+
/** Ceiling for the backoff, in seconds. */
|
|
83
|
+
RETRY_MAX_SECONDS: 3600,
|
|
84
|
+
/** Jitter added to each retry delay, as a fraction of the delay. */
|
|
85
|
+
RETRY_JITTER_RATIO: 0.2,
|
|
86
|
+
/** Per-request timeout for an outbound helpdesk call, in milliseconds. */
|
|
87
|
+
REQUEST_TIMEOUT_MS: 15000,
|
|
88
|
+
/** Rows a worker claims per tick. */
|
|
89
|
+
BATCH_SIZE: 25,
|
|
90
|
+
/** How long a row may sit IN_PROGRESS before it is treated as abandoned, in minutes. */
|
|
91
|
+
STUCK_IN_PROGRESS_MINUTES: 10,
|
|
92
|
+
/** Consecutive provider failures that trip the circuit breaker. */
|
|
93
|
+
CIRCUIT_FAILURE_THRESHOLD: 5,
|
|
94
|
+
/** How long the breaker stays open before a single probe is allowed, in seconds. */
|
|
95
|
+
CIRCUIT_OPEN_SECONDS: 60,
|
|
96
|
+
/** Longest a webhook delivery record is kept for replay detection, in hours. */
|
|
97
|
+
WEBHOOK_DEDUP_TTL_HOURS: 48,
|
|
98
|
+
};
|
|
99
|
+
/** Field limits applied before anything is sent to a helpdesk or stored. */
|
|
100
|
+
export const SUPPORT_FIELD_LIMITS = {
|
|
101
|
+
SUBJECT_MAX_LENGTH: 200,
|
|
102
|
+
DESCRIPTION_MAX_LENGTH: 20000,
|
|
103
|
+
MESSAGE_MAX_LENGTH: 20000,
|
|
104
|
+
FEEDBACK_TITLE_MAX_LENGTH: 200,
|
|
105
|
+
FEEDBACK_MESSAGE_MAX_LENGTH: 5000,
|
|
106
|
+
TAG_MAX_LENGTH: 50,
|
|
107
|
+
MAX_TAGS_PER_TICKET: 20,
|
|
108
|
+
MAX_ATTACHMENTS_PER_MESSAGE: 10,
|
|
109
|
+
/** Longest error text persisted on a synchronization row. */
|
|
110
|
+
SYNC_ERROR_MAX_LENGTH: 2000,
|
|
111
|
+
/** Longest provider payload snapshot kept on a synchronization row. */
|
|
112
|
+
SYNC_SNAPSHOT_MAX_LENGTH: 8000,
|
|
113
|
+
};
|
|
114
|
+
/** Rating bounds for the feedback types that carry one. */
|
|
115
|
+
export const SUPPORT_FEEDBACK_RATING = {
|
|
116
|
+
MIN: 1,
|
|
117
|
+
MAX: 5,
|
|
118
|
+
/** At or below this, a rating counts as negative for sentiment. */
|
|
119
|
+
NEGATIVE_AT_OR_BELOW: 2,
|
|
120
|
+
/** At or above this, a rating counts as positive. */
|
|
121
|
+
POSITIVE_AT_OR_ABOVE: 4,
|
|
122
|
+
};
|
|
123
|
+
/**
|
|
124
|
+
* Header carrying a client-supplied idempotency key.
|
|
125
|
+
*
|
|
126
|
+
* Mobile networks drop replies, not requests. Without this a customer who taps
|
|
127
|
+
* Send twice on a train raises two tickets, and the second one wastes an
|
|
128
|
+
* agent's time proving it is a duplicate of the first.
|
|
129
|
+
*/
|
|
130
|
+
export const SUPPORT_IDEMPOTENCY_HEADER = 'idempotency-key';
|
|
131
|
+
/** How long an idempotency key is honoured. Long enough to cover any real retry. */
|
|
132
|
+
export const SUPPORT_IDEMPOTENCY_TTL_HOURS = 24;
|
|
133
|
+
/** Ticket-number format: SUP-<COUNTRY>-<YEAR>-<6-digit sequence>. */
|
|
134
|
+
export const SUPPORT_TICKET_NUMBER_PREFIX = 'SUP';
|
|
135
|
+
export const SUPPORT_TICKET_NUMBER_SEQUENCE_WIDTH = 6;
|
|
136
|
+
//# sourceMappingURL=support-defaults.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-defaults.const.js","sourceRoot":"","sources":["../../../../../src/modules/support/constants/support-defaults.const.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Consumer groups for the support topics. One group per logical consumer, so
|
|
3
|
+
* adding a consumer never steals another's messages.
|
|
4
|
+
*/
|
|
5
|
+
export const SUPPORT_CONSUMER_GROUPS = {
|
|
6
|
+
/** clarion-notification: tells a customer an agent replied, and a supervisor that an SLA slipped. */
|
|
7
|
+
NOTIFICATION: 'support-notification',
|
|
8
|
+
/** clarion-socket: keeps the admin console and the customer's ticket screen live. */
|
|
9
|
+
REALTIME: 'support-realtime',
|
|
10
|
+
/** Anything analytical that wants the raw stream. */
|
|
11
|
+
ANALYTICS: 'support-analytics',
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* Redis channel clarion-support publishes live ticket and feedback updates on,
|
|
15
|
+
* mirroring the newsfeed and tracking realtime bridges that clarion-socket
|
|
16
|
+
* already subscribes to.
|
|
17
|
+
*
|
|
18
|
+
* Redis rather than Kafka for the live path, deliberately: clarion-socket
|
|
19
|
+
* consumes Redis pub/sub for every other domain, and a second transport into
|
|
20
|
+
* the same service would be a new failure mode for no benefit. Kafka carries
|
|
21
|
+
* the durable, replayable record of the same facts.
|
|
22
|
+
*/
|
|
23
|
+
export const SUPPORT_REALTIME_CHANNEL = 'realtime:support';
|
|
24
|
+
/**
|
|
25
|
+
* Room names clients subscribe to for live support updates.
|
|
26
|
+
*
|
|
27
|
+
* A customer joins only their own ticket's room; an agent joins a queue room
|
|
28
|
+
* and their own user room. The authorization for each is enforced in
|
|
29
|
+
* clarion-socket, not here - these helpers exist so producer and consumer
|
|
30
|
+
* cannot drift on the string format.
|
|
31
|
+
*/
|
|
32
|
+
export const SUPPORT_ROOMS = {
|
|
33
|
+
ticket: (ticketId) => `support:ticket:${ticketId}`,
|
|
34
|
+
queue: (queueId) => `support:queue:${queueId}`,
|
|
35
|
+
user: (userId) => `support:user:${userId}`,
|
|
36
|
+
organization: (organizationId) => `support:org:${organizationId}`,
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* How long a consumed provider webhook is remembered, to collapse redeliveries.
|
|
40
|
+
*
|
|
41
|
+
* Helpdesks retry a delivery whose acknowledgement they did not see, and a
|
|
42
|
+
* replayed reply would be shown to the customer twice. The row is the record of
|
|
43
|
+
* record; this constant only bounds how long it is consulted.
|
|
44
|
+
*/
|
|
45
|
+
export const SUPPORT_WEBHOOK_EVENT_DEDUP_TTL_SECONDS = 48 * 60 * 60;
|
|
46
|
+
/** Dedup namespace used when claiming a support event id in Redis. */
|
|
47
|
+
export const SUPPORT_EVENT_DEDUP_NAMESPACE = 'support.events';
|
|
48
|
+
//# sourceMappingURL=support-kafka.const.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"support-kafka.const.js","sourceRoot":"","sources":["../../../../../src/modules/support/constants/support-kafka.const.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACnC,qGAAqG;IACrG,YAAY,EAAE,sBAAsB;IACpC,qFAAqF;IACrF,QAAQ,EAAE,kBAAkB;IAC5B,qDAAqD;IACrD,SAAS,EAAE,mBAAmB;CACxB,CAAC;AAEX;;;;;;;;;GASG;AACH,MAAM,CAAC,MAAM,wBAAwB,GAAG,kBAAkB,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG;IACzB,MAAM,EAAE,CAAC,QAAgB,EAAU,EAAE,CAAC,kBAAkB,QAAQ,EAAE;IAClE,KAAK,EAAE,CAAC,OAAe,EAAU,EAAE,CAAC,iBAAiB,OAAO,EAAE;IAC9D,IAAI,EAAE,CAAC,MAAuB,EAAU,EAAE,CAAC,gBAAgB,MAAM,EAAE;IACnE,YAAY,EAAE,CAAC,cAA+B,EAAU,EAAE,CAAC,eAAe,cAAc,EAAE;CACpF,CAAC;AAEX;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;AAEpE,sEAAsE;AACtE,MAAM,CAAC,MAAM,6BAA6B,GAAG,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
11
|
+
import { Type } from 'class-transformer';
|
|
12
|
+
import { ArrayMaxSize, IsArray, IsInt, IsOptional, IsPositive, IsString, MaxLength, MinLength, } from 'class-validator';
|
|
13
|
+
import { SUPPORT_FIELD_LIMITS } from '../constants/support-defaults.const';
|
|
14
|
+
/**
|
|
15
|
+
* Add a message to a ticket conversation.
|
|
16
|
+
*
|
|
17
|
+
* There is deliberately no `type` field. Whether an entry is a customer message
|
|
18
|
+
* or an agent reply is decided by clarion-support from the caller's identity
|
|
19
|
+
* and permissions, never by the client - a customer able to post an
|
|
20
|
+
* AGENT_REPLY, or an agent able to post an internal note through the
|
|
21
|
+
* customer-facing endpoint, would each be a security bug rather than a
|
|
22
|
+
* validation one.
|
|
23
|
+
*
|
|
24
|
+
* Internal notes have their own endpoint and their own permission for the same
|
|
25
|
+
* reason.
|
|
26
|
+
*/
|
|
27
|
+
export class CreateSupportTicketMessageDto {
|
|
28
|
+
}
|
|
29
|
+
__decorate([
|
|
30
|
+
ApiProperty({ maxLength: SUPPORT_FIELD_LIMITS.MESSAGE_MAX_LENGTH }),
|
|
31
|
+
IsString(),
|
|
32
|
+
MinLength(1),
|
|
33
|
+
MaxLength(SUPPORT_FIELD_LIMITS.MESSAGE_MAX_LENGTH),
|
|
34
|
+
__metadata("design:type", String)
|
|
35
|
+
], CreateSupportTicketMessageDto.prototype, "body", void 0);
|
|
36
|
+
__decorate([
|
|
37
|
+
ApiPropertyOptional({
|
|
38
|
+
type: [Number],
|
|
39
|
+
description: 'clarion-dms document ids to attach to this message.',
|
|
40
|
+
}),
|
|
41
|
+
IsArray(),
|
|
42
|
+
ArrayMaxSize(SUPPORT_FIELD_LIMITS.MAX_ATTACHMENTS_PER_MESSAGE),
|
|
43
|
+
Type(() => Number),
|
|
44
|
+
IsInt({ each: true }),
|
|
45
|
+
IsPositive({ each: true }),
|
|
46
|
+
IsOptional(),
|
|
47
|
+
__metadata("design:type", Array)
|
|
48
|
+
], CreateSupportTicketMessageDto.prototype, "documentIds", void 0);
|
|
49
|
+
/**
|
|
50
|
+
* Add an internal note.
|
|
51
|
+
*
|
|
52
|
+
* Never mirrored to a customer and never returned by a customer-facing
|
|
53
|
+
* endpoint. It IS pushed to the helpdesk as a note where the provider supports
|
|
54
|
+
* one, because an agent working in the helpdesk needs the same context - which
|
|
55
|
+
* is exactly why the visibility rule has to live in the domain rather than in
|
|
56
|
+
* whichever adapter happens to be configured.
|
|
57
|
+
*/
|
|
58
|
+
export class CreateSupportInternalNoteDto {
|
|
59
|
+
}
|
|
60
|
+
__decorate([
|
|
61
|
+
ApiProperty({ maxLength: SUPPORT_FIELD_LIMITS.MESSAGE_MAX_LENGTH }),
|
|
62
|
+
IsString(),
|
|
63
|
+
MinLength(1),
|
|
64
|
+
MaxLength(SUPPORT_FIELD_LIMITS.MESSAGE_MAX_LENGTH),
|
|
65
|
+
__metadata("design:type", String)
|
|
66
|
+
], CreateSupportInternalNoteDto.prototype, "body", void 0);
|
|
67
|
+
__decorate([
|
|
68
|
+
ApiPropertyOptional({ type: [Number] }),
|
|
69
|
+
IsArray(),
|
|
70
|
+
ArrayMaxSize(SUPPORT_FIELD_LIMITS.MAX_ATTACHMENTS_PER_MESSAGE),
|
|
71
|
+
Type(() => Number),
|
|
72
|
+
IsInt({ each: true }),
|
|
73
|
+
IsPositive({ each: true }),
|
|
74
|
+
IsOptional(),
|
|
75
|
+
__metadata("design:type", Array)
|
|
76
|
+
], CreateSupportInternalNoteDto.prototype, "documentIds", void 0);
|
|
77
|
+
//# sourceMappingURL=create-support-ticket-message.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-support-ticket-message.dto.js","sourceRoot":"","sources":["../../../../../src/modules/support/dtos/create-support-ticket-message.dto.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACH,YAAY,EACZ,OAAO,EACP,KAAK,EACL,UAAU,EACV,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,GACZ,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAE3E;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,6BAA6B;CAkBzC;AAbG;IAJC,WAAW,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;IACnE,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;;2DACrC;AAYd;IAVC,mBAAmB,CAAC;QACjB,IAAI,EAAE,CAAC,MAAM,CAAC;QACd,WAAW,EAAE,qDAAqD;KACrE,CAAC;IACD,OAAO,EAAE;IACT,YAAY,CAAC,oBAAoB,CAAC,2BAA2B,CAAC;IAC9D,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,UAAU,EAAE;;kEACU;AAG3B;;;;;;;;GAQG;AACH,MAAM,OAAO,4BAA4B;CAexC;AAVG;IAJC,WAAW,CAAC,EAAE,SAAS,EAAE,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;IACnE,QAAQ,EAAE;IACV,SAAS,CAAC,CAAC,CAAC;IACZ,SAAS,CAAC,oBAAoB,CAAC,kBAAkB,CAAC;;0DACrC;AASd;IAPC,mBAAmB,CAAC,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC;IACvC,OAAO,EAAE;IACT,YAAY,CAAC,oBAAoB,CAAC,2BAA2B,CAAC;IAC9D,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrB,UAAU,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC1B,UAAU,EAAE;;iEACU"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
|
+
};
|
|
10
|
+
import { ApiProperty, ApiPropertyOptional } from '@nestjs/swagger';
|
|
11
|
+
import { Type } from 'class-transformer';
|
|
12
|
+
import { ArrayMaxSize, IsArray, IsEnum, IsInt, IsOptional, IsPositive, IsString, IsUUID, MaxLength, MinLength, ValidateNested, } from 'class-validator';
|
|
13
|
+
import { CountryCode } from '../../country/enums/country-code.enum';
|
|
14
|
+
import { IncidentAppId } from '../../incident/enums/incident-app-id.enum';
|
|
15
|
+
import { SUPPORT_FIELD_LIMITS } from '../constants/support-defaults.const';
|
|
16
|
+
import { SupportTicketChannel } from '../enums/support-ticket-channel.enum';
|
|
17
|
+
import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
|
|
18
|
+
import { SupportRelatedEntityDto } from './support-related-entity.dto';
|
|
19
|
+
/**
|
|
20
|
+
* Raise a support ticket.
|
|
21
|
+
*
|
|
22
|
+
* Tenancy is NOT taken from this payload. `organizationId`, `controlCentreId`
|
|
23
|
+
* and the customer are resolved from the caller's trusted context in
|
|
24
|
+
* clarion-support; the two overridable fields below are honoured only for a
|
|
25
|
+
* super-admin or an agent raising a ticket on somebody's behalf, and are
|
|
26
|
+
* ignored for everyone else. A customer who sends another organization's id
|
|
27
|
+
* still gets a ticket in their own.
|
|
28
|
+
*
|
|
29
|
+
* Retries are safe: send the same `Idempotency-Key` header and a repeat is
|
|
30
|
+
* answered with the ticket the first attempt created. Mobile networks drop
|
|
31
|
+
* replies rather than requests, and without that a customer who taps Send twice
|
|
32
|
+
* on a train raises two tickets.
|
|
33
|
+
*/
|
|
34
|
+
export class CreateSupportTicketDto {
|
|
35
|
+
}
|
|
36
|
+
__decorate([
|
|
37
|
+
ApiProperty({
|
|
38
|
+
description: 'One-line summary. Shown in every list and in the notification.',
|
|
39
|
+
example: 'Panic button does not reach the control room',
|
|
40
|
+
maxLength: SUPPORT_FIELD_LIMITS.SUBJECT_MAX_LENGTH,
|
|
41
|
+
}),
|
|
42
|
+
IsString(),
|
|
43
|
+
MinLength(3),
|
|
44
|
+
MaxLength(SUPPORT_FIELD_LIMITS.SUBJECT_MAX_LENGTH),
|
|
45
|
+
__metadata("design:type", String)
|
|
46
|
+
], CreateSupportTicketDto.prototype, "subject", void 0);
|
|
47
|
+
__decorate([
|
|
48
|
+
ApiProperty({
|
|
49
|
+
description: 'What happened, in the customer\'s words.',
|
|
50
|
+
maxLength: SUPPORT_FIELD_LIMITS.DESCRIPTION_MAX_LENGTH,
|
|
51
|
+
}),
|
|
52
|
+
IsString(),
|
|
53
|
+
MinLength(1),
|
|
54
|
+
MaxLength(SUPPORT_FIELD_LIMITS.DESCRIPTION_MAX_LENGTH),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
|
+
], CreateSupportTicketDto.prototype, "description", void 0);
|
|
57
|
+
__decorate([
|
|
58
|
+
ApiPropertyOptional({ description: 'Category id. Drives routing and the default priority.' }),
|
|
59
|
+
IsUUID(),
|
|
60
|
+
IsOptional(),
|
|
61
|
+
__metadata("design:type", String)
|
|
62
|
+
], CreateSupportTicketDto.prototype, "categoryId", void 0);
|
|
63
|
+
__decorate([
|
|
64
|
+
ApiPropertyOptional({
|
|
65
|
+
enum: SupportTicketPriority,
|
|
66
|
+
description: 'Requested urgency. A routing rule may raise it and never lowers it - a customer who ' +
|
|
67
|
+
'says their panic button is broken knows something the rule table does not.',
|
|
68
|
+
}),
|
|
69
|
+
IsEnum(SupportTicketPriority),
|
|
70
|
+
IsOptional(),
|
|
71
|
+
__metadata("design:type", String)
|
|
72
|
+
], CreateSupportTicketDto.prototype, "priority", void 0);
|
|
73
|
+
__decorate([
|
|
74
|
+
ApiPropertyOptional({
|
|
75
|
+
enum: SupportTicketChannel,
|
|
76
|
+
description: 'Where it came from. Defaults to the channel implied by the caller.',
|
|
77
|
+
}),
|
|
78
|
+
IsEnum(SupportTicketChannel),
|
|
79
|
+
IsOptional(),
|
|
80
|
+
__metadata("design:type", String)
|
|
81
|
+
], CreateSupportTicketDto.prototype, "channel", void 0);
|
|
82
|
+
__decorate([
|
|
83
|
+
ApiPropertyOptional({
|
|
84
|
+
type: [SupportRelatedEntityDto],
|
|
85
|
+
description: 'What the ticket is about - an incident, an invoice, a newsfeed post.',
|
|
86
|
+
}),
|
|
87
|
+
IsArray(),
|
|
88
|
+
ArrayMaxSize(10),
|
|
89
|
+
ValidateNested({ each: true }),
|
|
90
|
+
Type(() => SupportRelatedEntityDto),
|
|
91
|
+
IsOptional(),
|
|
92
|
+
__metadata("design:type", Array)
|
|
93
|
+
], CreateSupportTicketDto.prototype, "relatedEntities", void 0);
|
|
94
|
+
__decorate([
|
|
95
|
+
ApiPropertyOptional({
|
|
96
|
+
description: 'clarion-dms document ids to attach. The bytes are uploaded to DMS first.',
|
|
97
|
+
type: [Number],
|
|
98
|
+
}),
|
|
99
|
+
IsArray(),
|
|
100
|
+
ArrayMaxSize(SUPPORT_FIELD_LIMITS.MAX_ATTACHMENTS_PER_MESSAGE),
|
|
101
|
+
Type(() => Number),
|
|
102
|
+
IsInt({ each: true }),
|
|
103
|
+
IsPositive({ each: true }),
|
|
104
|
+
IsOptional(),
|
|
105
|
+
__metadata("design:type", Array)
|
|
106
|
+
], CreateSupportTicketDto.prototype, "documentIds", void 0);
|
|
107
|
+
__decorate([
|
|
108
|
+
ApiPropertyOptional({ description: 'Labels for triage.', type: [String] }),
|
|
109
|
+
IsArray(),
|
|
110
|
+
ArrayMaxSize(SUPPORT_FIELD_LIMITS.MAX_TAGS_PER_TICKET),
|
|
111
|
+
IsString({ each: true }),
|
|
112
|
+
MaxLength(SUPPORT_FIELD_LIMITS.TAG_MAX_LENGTH, { each: true }),
|
|
113
|
+
IsOptional(),
|
|
114
|
+
__metadata("design:type", Array)
|
|
115
|
+
], CreateSupportTicketDto.prototype, "tags", void 0);
|
|
116
|
+
__decorate([
|
|
117
|
+
ApiPropertyOptional({
|
|
118
|
+
enum: IncidentAppId,
|
|
119
|
+
description: 'Client application, so a white-label tenant can be told apart.',
|
|
120
|
+
}),
|
|
121
|
+
IsEnum(IncidentAppId),
|
|
122
|
+
IsOptional(),
|
|
123
|
+
__metadata("design:type", String)
|
|
124
|
+
], CreateSupportTicketDto.prototype, "appId", void 0);
|
|
125
|
+
__decorate([
|
|
126
|
+
ApiPropertyOptional({
|
|
127
|
+
enum: CountryCode,
|
|
128
|
+
description: 'Overrides the country context. Honoured only for an agent or super-admin; a customer ' +
|
|
129
|
+
'ticket takes the country from their own context.',
|
|
130
|
+
}),
|
|
131
|
+
IsEnum(CountryCode),
|
|
132
|
+
IsOptional(),
|
|
133
|
+
__metadata("design:type", String)
|
|
134
|
+
], CreateSupportTicketDto.prototype, "countryCode", void 0);
|
|
135
|
+
__decorate([
|
|
136
|
+
ApiPropertyOptional({
|
|
137
|
+
description: 'Tenant the ticket belongs to. Required for a super-admin, ignored for everyone else.',
|
|
138
|
+
example: 48,
|
|
139
|
+
}),
|
|
140
|
+
Type(() => Number),
|
|
141
|
+
IsInt(),
|
|
142
|
+
IsPositive(),
|
|
143
|
+
IsOptional(),
|
|
144
|
+
__metadata("design:type", Number)
|
|
145
|
+
], CreateSupportTicketDto.prototype, "organizationId", void 0);
|
|
146
|
+
__decorate([
|
|
147
|
+
ApiPropertyOptional({
|
|
148
|
+
description: 'Whose ticket it is. Honoured only for an agent raising one on a customer\'s behalf; ' +
|
|
149
|
+
'a customer is always the customer on their own ticket.',
|
|
150
|
+
example: 900,
|
|
151
|
+
}),
|
|
152
|
+
Type(() => Number),
|
|
153
|
+
IsInt(),
|
|
154
|
+
IsPositive(),
|
|
155
|
+
IsOptional(),
|
|
156
|
+
__metadata("design:type", Number)
|
|
157
|
+
], CreateSupportTicketDto.prototype, "customerUserId", void 0);
|
|
158
|
+
__decorate([
|
|
159
|
+
ApiPropertyOptional({
|
|
160
|
+
description: 'Non-sensitive diagnostic context. Credential-shaped keys are stripped before storage.',
|
|
161
|
+
}),
|
|
162
|
+
IsOptional(),
|
|
163
|
+
__metadata("design:type", Object)
|
|
164
|
+
], CreateSupportTicketDto.prototype, "metadata", void 0);
|
|
165
|
+
//# sourceMappingURL=create-support-ticket.dto.js.map
|