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.
Files changed (244) hide show
  1. package/dist/cjs/index.js +1 -0
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/cjs/kafka/topics.js +26 -0
  4. package/dist/cjs/kafka/topics.js.map +1 -1
  5. package/dist/cjs/modules/common/constants/service.const.js +1 -0
  6. package/dist/cjs/modules/common/constants/service.const.js.map +1 -1
  7. package/dist/cjs/modules/permission/data/permissions.data.js +26 -0
  8. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  9. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +40 -0
  10. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  11. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  12. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  13. package/dist/cjs/modules/role/data/roles.data.js +85 -0
  14. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  15. package/dist/cjs/modules/socket/enums/redis-channel-name.enum.js +1 -0
  16. package/dist/cjs/modules/socket/enums/redis-channel-name.enum.js.map +1 -1
  17. package/dist/cjs/modules/socket/enums/room-type.enum.js +8 -0
  18. package/dist/cjs/modules/socket/enums/room-type.enum.js.map +1 -1
  19. package/dist/cjs/modules/socket/enums/socket-event-name.enum.js +5 -0
  20. package/dist/cjs/modules/socket/enums/socket-event-name.enum.js.map +1 -1
  21. package/dist/cjs/modules/support/constants/support-defaults.const.js +139 -0
  22. package/dist/cjs/modules/support/constants/support-defaults.const.js.map +1 -0
  23. package/dist/cjs/modules/support/constants/support-kafka.const.js +51 -0
  24. package/dist/cjs/modules/support/constants/support-kafka.const.js.map +1 -0
  25. package/dist/cjs/modules/support/dtos/create-support-ticket-message.dto.js +82 -0
  26. package/dist/cjs/modules/support/dtos/create-support-ticket-message.dto.js.map +1 -0
  27. package/dist/cjs/modules/support/dtos/create-support-ticket.dto.js +169 -0
  28. package/dist/cjs/modules/support/dtos/create-support-ticket.dto.js.map +1 -0
  29. package/dist/cjs/modules/support/dtos/customer-feedback.dto.js +401 -0
  30. package/dist/cjs/modules/support/dtos/customer-feedback.dto.js.map +1 -0
  31. package/dist/cjs/modules/support/dtos/support-configuration.dto.js +732 -0
  32. package/dist/cjs/modules/support/dtos/support-configuration.dto.js.map +1 -0
  33. package/dist/cjs/modules/support/dtos/support-related-entity.dto.js +38 -0
  34. package/dist/cjs/modules/support/dtos/support-related-entity.dto.js.map +1 -0
  35. package/dist/cjs/modules/support/dtos/support-report-query.dto.js +127 -0
  36. package/dist/cjs/modules/support/dtos/support-report-query.dto.js.map +1 -0
  37. package/dist/cjs/modules/support/dtos/support-sync.dto.js +175 -0
  38. package/dist/cjs/modules/support/dtos/support-sync.dto.js.map +1 -0
  39. package/dist/cjs/modules/support/dtos/support-ticket-actions.dto.js +191 -0
  40. package/dist/cjs/modules/support/dtos/support-ticket-actions.dto.js.map +1 -0
  41. package/dist/cjs/modules/support/dtos/support-ticket-query.dto.js +225 -0
  42. package/dist/cjs/modules/support/dtos/support-ticket-query.dto.js.map +1 -0
  43. package/dist/cjs/modules/support/enums/support-audit-action.enum.js +87 -0
  44. package/dist/cjs/modules/support/enums/support-audit-action.enum.js.map +1 -0
  45. package/dist/cjs/modules/support/enums/support-feedback.enum.js +110 -0
  46. package/dist/cjs/modules/support/enums/support-feedback.enum.js.map +1 -0
  47. package/dist/cjs/modules/support/enums/support-provider-code.enum.js +66 -0
  48. package/dist/cjs/modules/support/enums/support-provider-code.enum.js.map +1 -0
  49. package/dist/cjs/modules/support/enums/support-related-entity-type.enum.js +50 -0
  50. package/dist/cjs/modules/support/enums/support-related-entity-type.enum.js.map +1 -0
  51. package/dist/cjs/modules/support/enums/support-routing.enum.js +58 -0
  52. package/dist/cjs/modules/support/enums/support-routing.enum.js.map +1 -0
  53. package/dist/cjs/modules/support/enums/support-sla.enum.js +55 -0
  54. package/dist/cjs/modules/support/enums/support-sla.enum.js.map +1 -0
  55. package/dist/cjs/modules/support/enums/support-sync.enum.js +133 -0
  56. package/dist/cjs/modules/support/enums/support-sync.enum.js.map +1 -0
  57. package/dist/cjs/modules/support/enums/support-ticket-channel.enum.js +36 -0
  58. package/dist/cjs/modules/support/enums/support-ticket-channel.enum.js.map +1 -0
  59. package/dist/cjs/modules/support/enums/support-ticket-message.enum.js +54 -0
  60. package/dist/cjs/modules/support/enums/support-ticket-message.enum.js.map +1 -0
  61. package/dist/cjs/modules/support/enums/support-ticket-priority.enum.js +41 -0
  62. package/dist/cjs/modules/support/enums/support-ticket-priority.enum.js.map +1 -0
  63. package/dist/cjs/modules/support/enums/support-ticket-status.enum.js +138 -0
  64. package/dist/cjs/modules/support/enums/support-ticket-status.enum.js.map +1 -0
  65. package/dist/cjs/modules/support/index.js +60 -0
  66. package/dist/cjs/modules/support/index.js.map +1 -0
  67. package/dist/cjs/modules/support/interfaces/customer-feedback.js +3 -0
  68. package/dist/cjs/modules/support/interfaces/customer-feedback.js.map +1 -0
  69. package/dist/cjs/modules/support/interfaces/support-configuration.js +3 -0
  70. package/dist/cjs/modules/support/interfaces/support-configuration.js.map +1 -0
  71. package/dist/cjs/modules/support/interfaces/support-events.js +3 -0
  72. package/dist/cjs/modules/support/interfaces/support-events.js.map +1 -0
  73. package/dist/cjs/modules/support/interfaces/support-provider-descriptor.js +3 -0
  74. package/dist/cjs/modules/support/interfaces/support-provider-descriptor.js.map +1 -0
  75. package/dist/cjs/modules/support/interfaces/support-realtime.js +18 -0
  76. package/dist/cjs/modules/support/interfaces/support-realtime.js.map +1 -0
  77. package/dist/cjs/modules/support/interfaces/support-reports.js +3 -0
  78. package/dist/cjs/modules/support/interfaces/support-reports.js.map +1 -0
  79. package/dist/cjs/modules/support/interfaces/support-sync.js +3 -0
  80. package/dist/cjs/modules/support/interfaces/support-sync.js.map +1 -0
  81. package/dist/cjs/modules/support/interfaces/support-ticket-message.js +3 -0
  82. package/dist/cjs/modules/support/interfaces/support-ticket-message.js.map +1 -0
  83. package/dist/cjs/modules/support/interfaces/support-ticket.js +3 -0
  84. package/dist/cjs/modules/support/interfaces/support-ticket.js.map +1 -0
  85. package/dist/cjs/modules/support/utils/support-feedback.util.js +66 -0
  86. package/dist/cjs/modules/support/utils/support-feedback.util.js.map +1 -0
  87. package/dist/cjs/modules/support/utils/support-redaction.util.js +173 -0
  88. package/dist/cjs/modules/support/utils/support-redaction.util.js.map +1 -0
  89. package/dist/cjs/modules/support/utils/support-routing.util.js +87 -0
  90. package/dist/cjs/modules/support/utils/support-routing.util.js.map +1 -0
  91. package/dist/cjs/modules/support/utils/support-sla.util.js +239 -0
  92. package/dist/cjs/modules/support/utils/support-sla.util.js.map +1 -0
  93. package/dist/cjs/modules/support/utils/support-status.util.js +93 -0
  94. package/dist/cjs/modules/support/utils/support-status.util.js.map +1 -0
  95. package/dist/cjs/modules/support/utils/support-sync.util.js +151 -0
  96. package/dist/cjs/modules/support/utils/support-sync.util.js.map +1 -0
  97. package/dist/cjs/modules/support/utils/support-ticket-number.util.js +61 -0
  98. package/dist/cjs/modules/support/utils/support-ticket-number.util.js.map +1 -0
  99. package/dist/esm/index.js +1 -0
  100. package/dist/esm/index.js.map +1 -1
  101. package/dist/esm/kafka/topics.js +26 -0
  102. package/dist/esm/kafka/topics.js.map +1 -1
  103. package/dist/esm/modules/common/constants/service.const.js +1 -0
  104. package/dist/esm/modules/common/constants/service.const.js.map +1 -1
  105. package/dist/esm/modules/permission/data/permissions.data.js +26 -0
  106. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  107. package/dist/esm/modules/permission/enums/permission-actions.enum.js +40 -0
  108. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  109. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  110. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  111. package/dist/esm/modules/role/data/roles.data.js +85 -0
  112. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  113. package/dist/esm/modules/socket/enums/redis-channel-name.enum.js +1 -0
  114. package/dist/esm/modules/socket/enums/redis-channel-name.enum.js.map +1 -1
  115. package/dist/esm/modules/socket/enums/room-type.enum.js +8 -0
  116. package/dist/esm/modules/socket/enums/room-type.enum.js.map +1 -1
  117. package/dist/esm/modules/socket/enums/socket-event-name.enum.js +5 -0
  118. package/dist/esm/modules/socket/enums/socket-event-name.enum.js.map +1 -1
  119. package/dist/esm/modules/support/constants/support-defaults.const.js +136 -0
  120. package/dist/esm/modules/support/constants/support-defaults.const.js.map +1 -0
  121. package/dist/esm/modules/support/constants/support-kafka.const.js +48 -0
  122. package/dist/esm/modules/support/constants/support-kafka.const.js.map +1 -0
  123. package/dist/esm/modules/support/dtos/create-support-ticket-message.dto.js +77 -0
  124. package/dist/esm/modules/support/dtos/create-support-ticket-message.dto.js.map +1 -0
  125. package/dist/esm/modules/support/dtos/create-support-ticket.dto.js +165 -0
  126. package/dist/esm/modules/support/dtos/create-support-ticket.dto.js.map +1 -0
  127. package/dist/esm/modules/support/dtos/customer-feedback.dto.js +392 -0
  128. package/dist/esm/modules/support/dtos/customer-feedback.dto.js.map +1 -0
  129. package/dist/esm/modules/support/dtos/support-configuration.dto.js +716 -0
  130. package/dist/esm/modules/support/dtos/support-configuration.dto.js.map +1 -0
  131. package/dist/esm/modules/support/dtos/support-related-entity.dto.js +34 -0
  132. package/dist/esm/modules/support/dtos/support-related-entity.dto.js.map +1 -0
  133. package/dist/esm/modules/support/dtos/support-report-query.dto.js +123 -0
  134. package/dist/esm/modules/support/dtos/support-report-query.dto.js.map +1 -0
  135. package/dist/esm/modules/support/dtos/support-sync.dto.js +169 -0
  136. package/dist/esm/modules/support/dtos/support-sync.dto.js.map +1 -0
  137. package/dist/esm/modules/support/dtos/support-ticket-actions.dto.js +180 -0
  138. package/dist/esm/modules/support/dtos/support-ticket-actions.dto.js.map +1 -0
  139. package/dist/esm/modules/support/dtos/support-ticket-query.dto.js +221 -0
  140. package/dist/esm/modules/support/dtos/support-ticket-query.dto.js.map +1 -0
  141. package/dist/esm/modules/support/enums/support-audit-action.enum.js +84 -0
  142. package/dist/esm/modules/support/enums/support-audit-action.enum.js.map +1 -0
  143. package/dist/esm/modules/support/enums/support-feedback.enum.js +107 -0
  144. package/dist/esm/modules/support/enums/support-feedback.enum.js.map +1 -0
  145. package/dist/esm/modules/support/enums/support-provider-code.enum.js +63 -0
  146. package/dist/esm/modules/support/enums/support-provider-code.enum.js.map +1 -0
  147. package/dist/esm/modules/support/enums/support-related-entity-type.enum.js +47 -0
  148. package/dist/esm/modules/support/enums/support-related-entity-type.enum.js.map +1 -0
  149. package/dist/esm/modules/support/enums/support-routing.enum.js +55 -0
  150. package/dist/esm/modules/support/enums/support-routing.enum.js.map +1 -0
  151. package/dist/esm/modules/support/enums/support-sla.enum.js +52 -0
  152. package/dist/esm/modules/support/enums/support-sla.enum.js.map +1 -0
  153. package/dist/esm/modules/support/enums/support-sync.enum.js +130 -0
  154. package/dist/esm/modules/support/enums/support-sync.enum.js.map +1 -0
  155. package/dist/esm/modules/support/enums/support-ticket-channel.enum.js +33 -0
  156. package/dist/esm/modules/support/enums/support-ticket-channel.enum.js.map +1 -0
  157. package/dist/esm/modules/support/enums/support-ticket-message.enum.js +51 -0
  158. package/dist/esm/modules/support/enums/support-ticket-message.enum.js.map +1 -0
  159. package/dist/esm/modules/support/enums/support-ticket-priority.enum.js +38 -0
  160. package/dist/esm/modules/support/enums/support-ticket-priority.enum.js.map +1 -0
  161. package/dist/esm/modules/support/enums/support-ticket-status.enum.js +135 -0
  162. package/dist/esm/modules/support/enums/support-ticket-status.enum.js.map +1 -0
  163. package/dist/esm/modules/support/index.js +44 -0
  164. package/dist/esm/modules/support/index.js.map +1 -0
  165. package/dist/esm/modules/support/interfaces/customer-feedback.js +2 -0
  166. package/dist/esm/modules/support/interfaces/customer-feedback.js.map +1 -0
  167. package/dist/esm/modules/support/interfaces/support-configuration.js +2 -0
  168. package/dist/esm/modules/support/interfaces/support-configuration.js.map +1 -0
  169. package/dist/esm/modules/support/interfaces/support-events.js +2 -0
  170. package/dist/esm/modules/support/interfaces/support-events.js.map +1 -0
  171. package/dist/esm/modules/support/interfaces/support-provider-descriptor.js +2 -0
  172. package/dist/esm/modules/support/interfaces/support-provider-descriptor.js.map +1 -0
  173. package/dist/esm/modules/support/interfaces/support-realtime.js +15 -0
  174. package/dist/esm/modules/support/interfaces/support-realtime.js.map +1 -0
  175. package/dist/esm/modules/support/interfaces/support-reports.js +2 -0
  176. package/dist/esm/modules/support/interfaces/support-reports.js.map +1 -0
  177. package/dist/esm/modules/support/interfaces/support-sync.js +2 -0
  178. package/dist/esm/modules/support/interfaces/support-sync.js.map +1 -0
  179. package/dist/esm/modules/support/interfaces/support-ticket-message.js +2 -0
  180. package/dist/esm/modules/support/interfaces/support-ticket-message.js.map +1 -0
  181. package/dist/esm/modules/support/interfaces/support-ticket.js +2 -0
  182. package/dist/esm/modules/support/interfaces/support-ticket.js.map +1 -0
  183. package/dist/esm/modules/support/utils/support-feedback.util.js +60 -0
  184. package/dist/esm/modules/support/utils/support-feedback.util.js.map +1 -0
  185. package/dist/esm/modules/support/utils/support-redaction.util.js +164 -0
  186. package/dist/esm/modules/support/utils/support-redaction.util.js.map +1 -0
  187. package/dist/esm/modules/support/utils/support-routing.util.js +82 -0
  188. package/dist/esm/modules/support/utils/support-routing.util.js.map +1 -0
  189. package/dist/esm/modules/support/utils/support-sla.util.js +229 -0
  190. package/dist/esm/modules/support/utils/support-sla.util.js.map +1 -0
  191. package/dist/esm/modules/support/utils/support-status.util.js +81 -0
  192. package/dist/esm/modules/support/utils/support-status.util.js.map +1 -0
  193. package/dist/esm/modules/support/utils/support-sync.util.js +142 -0
  194. package/dist/esm/modules/support/utils/support-sync.util.js.map +1 -0
  195. package/dist/esm/modules/support/utils/support-ticket-number.util.js +56 -0
  196. package/dist/esm/modules/support/utils/support-ticket-number.util.js.map +1 -0
  197. package/dist/types/index.d.ts +1 -0
  198. package/dist/types/kafka/topics.d.ts +21 -0
  199. package/dist/types/modules/common/constants/service.const.d.ts +4 -0
  200. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +21 -0
  201. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +2 -1
  202. package/dist/types/modules/socket/enums/redis-channel-name.enum.d.ts +2 -1
  203. package/dist/types/modules/socket/enums/room-type.enum.d.ts +8 -0
  204. package/dist/types/modules/socket/enums/socket-event-name.enum.d.ts +2 -1
  205. package/dist/types/modules/support/constants/support-defaults.const.d.ts +129 -0
  206. package/dist/types/modules/support/constants/support-kafka.const.d.ts +47 -0
  207. package/dist/types/modules/support/dtos/create-support-ticket-message.dto.d.ts +30 -0
  208. package/dist/types/modules/support/dtos/create-support-ticket.dto.d.ts +35 -0
  209. package/dist/types/modules/support/dtos/customer-feedback.dto.d.ts +83 -0
  210. package/dist/types/modules/support/dtos/support-configuration.dto.d.ts +130 -0
  211. package/dist/types/modules/support/dtos/support-related-entity.dto.d.ts +13 -0
  212. package/dist/types/modules/support/dtos/support-report-query.dto.d.ts +29 -0
  213. package/dist/types/modules/support/dtos/support-sync.dto.d.ts +40 -0
  214. package/dist/types/modules/support/dtos/support-ticket-actions.dto.d.ts +61 -0
  215. package/dist/types/modules/support/dtos/support-ticket-query.dto.d.ts +41 -0
  216. package/dist/types/modules/support/enums/support-audit-action.enum.d.ts +80 -0
  217. package/dist/types/modules/support/enums/support-feedback.enum.d.ts +65 -0
  218. package/dist/types/modules/support/enums/support-provider-code.enum.d.ts +57 -0
  219. package/dist/types/modules/support/enums/support-related-entity-type.enum.d.ts +41 -0
  220. package/dist/types/modules/support/enums/support-routing.enum.d.ts +48 -0
  221. package/dist/types/modules/support/enums/support-sla.enum.d.ts +47 -0
  222. package/dist/types/modules/support/enums/support-sync.enum.d.ts +108 -0
  223. package/dist/types/modules/support/enums/support-ticket-channel.enum.d.ts +30 -0
  224. package/dist/types/modules/support/enums/support-ticket-message.enum.d.ts +42 -0
  225. package/dist/types/modules/support/enums/support-ticket-priority.enum.d.ts +24 -0
  226. package/dist/types/modules/support/enums/support-ticket-status.enum.d.ts +58 -0
  227. package/dist/types/modules/support/index.d.ts +38 -0
  228. package/dist/types/modules/support/interfaces/customer-feedback.d.ts +115 -0
  229. package/dist/types/modules/support/interfaces/support-configuration.d.ts +170 -0
  230. package/dist/types/modules/support/interfaces/support-events.d.ts +126 -0
  231. package/dist/types/modules/support/interfaces/support-provider-descriptor.d.ts +92 -0
  232. package/dist/types/modules/support/interfaces/support-realtime.d.ts +65 -0
  233. package/dist/types/modules/support/interfaces/support-reports.d.ts +122 -0
  234. package/dist/types/modules/support/interfaces/support-sync.d.ts +105 -0
  235. package/dist/types/modules/support/interfaces/support-ticket-message.d.ts +66 -0
  236. package/dist/types/modules/support/interfaces/support-ticket.d.ts +180 -0
  237. package/dist/types/modules/support/utils/support-feedback.util.d.ts +23 -0
  238. package/dist/types/modules/support/utils/support-redaction.util.d.ts +48 -0
  239. package/dist/types/modules/support/utils/support-routing.util.d.ts +50 -0
  240. package/dist/types/modules/support/utils/support-sla.util.d.ts +69 -0
  241. package/dist/types/modules/support/utils/support-status.util.d.ts +44 -0
  242. package/dist/types/modules/support/utils/support-sync.util.d.ts +76 -0
  243. package/dist/types/modules/support/utils/support-ticket-number.util.d.ts +39 -0
  244. package/package.json +1 -1
@@ -0,0 +1,130 @@
1
+ import { CountryCode } from '../../country/enums/country-code.enum';
2
+ import { IncidentAppId } from '../../incident/enums/incident-app-id.enum';
3
+ import { SupportRelatedEntityType } from '../enums/support-related-entity-type.enum';
4
+ import { SupportQueueAssignmentStrategy, SupportRoutingMatchType, SupportTeamMemberRole } from '../enums/support-routing.enum';
5
+ import { SupportSlaClock } from '../enums/support-sla.enum';
6
+ import { SupportTicketChannel } from '../enums/support-ticket-channel.enum';
7
+ import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
8
+ export declare class CreateSupportCategoryDto {
9
+ name: string;
10
+ code: string;
11
+ description?: string;
12
+ parentId?: string;
13
+ defaultPriority?: SupportTicketPriority;
14
+ defaultQueueId?: string;
15
+ expectedRelatedEntityType?: SupportRelatedEntityType;
16
+ displayOrder?: number;
17
+ organizationId?: number;
18
+ }
19
+ export declare class UpdateSupportCategoryDto {
20
+ name?: string;
21
+ description?: string;
22
+ parentId?: string;
23
+ defaultPriority?: SupportTicketPriority;
24
+ defaultQueueId?: string;
25
+ expectedRelatedEntityType?: SupportRelatedEntityType;
26
+ displayOrder?: number;
27
+ active?: boolean;
28
+ }
29
+ export declare class CreateSupportQueueDto {
30
+ name: string;
31
+ code: string;
32
+ description?: string;
33
+ teamId?: string;
34
+ countryCode?: CountryCode;
35
+ controlCentreId?: number;
36
+ assignmentStrategy?: SupportQueueAssignmentStrategy;
37
+ slaPolicyId?: string;
38
+ displayOrder?: number;
39
+ organizationId?: number;
40
+ }
41
+ export declare class UpdateSupportQueueDto {
42
+ name?: string;
43
+ description?: string;
44
+ teamId?: string;
45
+ countryCode?: CountryCode;
46
+ controlCentreId?: number;
47
+ assignmentStrategy?: SupportQueueAssignmentStrategy;
48
+ slaPolicyId?: string;
49
+ displayOrder?: number;
50
+ active?: boolean;
51
+ }
52
+ export declare class CreateSupportTeamDto {
53
+ name: string;
54
+ code: string;
55
+ description?: string;
56
+ supervisorUserIds?: number[];
57
+ organizationId?: number;
58
+ }
59
+ export declare class UpdateSupportTeamDto {
60
+ name?: string;
61
+ description?: string;
62
+ supervisorUserIds?: number[];
63
+ active?: boolean;
64
+ }
65
+ export declare class UpsertSupportTeamMemberDto {
66
+ userId: number;
67
+ role: SupportTeamMemberRole;
68
+ active?: boolean;
69
+ }
70
+ /** One priority row of an SLA policy. */
71
+ export declare class SupportSlaPolicyTargetDto {
72
+ priority: SupportTicketPriority;
73
+ firstResponseMinutes: number;
74
+ resolutionMinutes: number;
75
+ clock: SupportSlaClock;
76
+ }
77
+ /** A working calendar for BUSINESS-clock targets. */
78
+ export declare class SupportBusinessCalendarDto {
79
+ workingDays: number[];
80
+ startMinuteOfDay: number;
81
+ endMinuteOfDay: number;
82
+ timezone?: string;
83
+ holidays?: string[];
84
+ }
85
+ export declare class CreateSupportSlaPolicyDto {
86
+ name: string;
87
+ description?: string;
88
+ targets: SupportSlaPolicyTargetDto[];
89
+ businessCalendar?: SupportBusinessCalendarDto;
90
+ isDefault?: boolean;
91
+ organizationId?: number;
92
+ }
93
+ export declare class UpdateSupportSlaPolicyDto {
94
+ name?: string;
95
+ description?: string;
96
+ targets?: SupportSlaPolicyTargetDto[];
97
+ businessCalendar?: SupportBusinessCalendarDto;
98
+ isDefault?: boolean;
99
+ active?: boolean;
100
+ }
101
+ export declare class CreateSupportRoutingRuleDto {
102
+ name: string;
103
+ matchType: SupportRoutingMatchType;
104
+ matchCategoryId?: string;
105
+ matchPriority?: SupportTicketPriority;
106
+ matchChannel?: SupportTicketChannel;
107
+ matchCountryCode?: CountryCode;
108
+ matchControlCentreId?: number;
109
+ matchAppId?: IncidentAppId;
110
+ matchRelatedEntityType?: SupportRelatedEntityType;
111
+ targetQueueId: string;
112
+ forcePriority?: SupportTicketPriority;
113
+ priority?: number;
114
+ organizationId?: number;
115
+ }
116
+ export declare class UpdateSupportRoutingRuleDto {
117
+ name?: string;
118
+ matchType?: SupportRoutingMatchType;
119
+ matchCategoryId?: string;
120
+ matchPriority?: SupportTicketPriority;
121
+ matchChannel?: SupportTicketChannel;
122
+ matchCountryCode?: CountryCode;
123
+ matchControlCentreId?: number;
124
+ matchAppId?: IncidentAppId;
125
+ matchRelatedEntityType?: SupportRelatedEntityType;
126
+ targetQueueId?: string;
127
+ forcePriority?: SupportTicketPriority;
128
+ priority?: number;
129
+ active?: boolean;
130
+ }
@@ -0,0 +1,13 @@
1
+ import { SupportRelatedEntityType } from '../enums/support-related-entity-type.enum';
2
+ /**
3
+ * A pointer to a record owned by another service.
4
+ *
5
+ * The id is a string on the wire because the owning services disagree on the
6
+ * type - an incident is an integer, a chat conversation is a uuid - and a
7
+ * union on the wire is a union every client has to handle. clarion-support
8
+ * validates the shape per type before it stores one.
9
+ */
10
+ export declare class SupportRelatedEntityDto {
11
+ type: SupportRelatedEntityType;
12
+ id: string;
13
+ }
@@ -0,0 +1,29 @@
1
+ import { CountryCode } from '../../country/enums/country-code.enum';
2
+ import { CustomerFeedbackStatus, CustomerFeedbackType } from '../enums/support-feedback.enum';
3
+ import { SupportTicketChannel } from '../enums/support-ticket-channel.enum';
4
+ import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
5
+ import { SupportTicketStatus } from '../enums/support-ticket-status.enum';
6
+ /**
7
+ * Filters every support report accepts.
8
+ *
9
+ * `from`/`to` default to the last thirty days in the service rather than here,
10
+ * so an omitted range is a sensible report instead of a full-table scan on a
11
+ * dashboard that loads on login.
12
+ */
13
+ export declare class SupportReportQueryDto {
14
+ from?: string;
15
+ to?: string;
16
+ organizationId?: number;
17
+ controlCentreId?: number;
18
+ countryCode?: CountryCode;
19
+ queueId?: string;
20
+ teamId?: string;
21
+ categoryId?: string;
22
+ agentUserId?: number;
23
+ status?: SupportTicketStatus;
24
+ priority?: SupportTicketPriority;
25
+ channel?: SupportTicketChannel;
26
+ feedbackType?: CustomerFeedbackType;
27
+ feedbackStatus?: CustomerFeedbackStatus;
28
+ granularity?: 'DAY' | 'WEEK' | 'MONTH';
29
+ }
@@ -0,0 +1,40 @@
1
+ import { SupportProviderCode } from '../enums/support-provider-code.enum';
2
+ import { SupportSyncEntityType, SupportSyncFailureReason, SupportSyncOperation, SupportSyncStatus } from '../enums/support-sync.enum';
3
+ /** Filters for the synchronization dashboard. */
4
+ export declare class SupportSyncQueryDto {
5
+ page?: number;
6
+ limit?: number;
7
+ status?: SupportSyncStatus;
8
+ operation?: SupportSyncOperation;
9
+ entityType?: SupportSyncEntityType;
10
+ failureReason?: SupportSyncFailureReason;
11
+ provider?: SupportProviderCode;
12
+ ticketId?: string;
13
+ organizationId?: number;
14
+ needsAttentionOnly?: boolean;
15
+ from?: string;
16
+ to?: string;
17
+ }
18
+ /**
19
+ * Put a failed synchronization row back in the queue.
20
+ *
21
+ * Deliberately not automatic for a dead-lettered row. It reached that state
22
+ * because the failure was permanent or the attempts ran out, and a retry loop
23
+ * that resurrects those on its own is a loop that re-sends the same broken
24
+ * request forever. A human decides, and the decision is audited.
25
+ */
26
+ export declare class RetrySupportSyncDto {
27
+ reason?: string;
28
+ resetAttempts?: boolean;
29
+ }
30
+ /**
31
+ * Re-read a ticket from the provider and settle the differences.
32
+ *
33
+ * `dryRun` is the default for a reason: an operator should be able to see what
34
+ * reconciliation WOULD change before it changes anything, on a record a
35
+ * customer is actively reading.
36
+ */
37
+ export declare class ReconcileSupportTicketDto {
38
+ dryRun?: boolean;
39
+ importMissingMessages?: boolean;
40
+ }
@@ -0,0 +1,61 @@
1
+ import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
2
+ import { SupportTicketStatus } from '../enums/support-ticket-status.enum';
3
+ /**
4
+ * Change what a ticket is about. Agent-side only.
5
+ *
6
+ * Deliberately cannot change status, priority or assignment: those each have
7
+ * their own endpoint because each has its own permission, its own audit action
8
+ * and its own side effects on the SLA clocks. A single fat PATCH would collapse
9
+ * all three into one permission and one indistinguishable audit row.
10
+ */
11
+ export declare class UpdateSupportTicketDto {
12
+ subject?: string;
13
+ categoryId?: string;
14
+ queueId?: string;
15
+ }
16
+ /** Give a ticket to an agent, a team, or both. */
17
+ export declare class AssignSupportTicketDto {
18
+ assignedAgentId?: number;
19
+ assignedTeamId?: string;
20
+ queueId?: string;
21
+ reason?: string;
22
+ }
23
+ /**
24
+ * Move a ticket to another state.
25
+ *
26
+ * The transition is validated against the state machine, so an arbitrary status
27
+ * cannot be written. An invalid move is a 409, never a silent no-op.
28
+ */
29
+ export declare class ChangeSupportTicketStatusDto {
30
+ status: SupportTicketStatus;
31
+ reason?: string;
32
+ message?: string;
33
+ }
34
+ /** Re-prioritise a ticket. Recalculates both SLA clocks from the original start. */
35
+ export declare class ChangeSupportTicketPriorityDto {
36
+ priority: SupportTicketPriority;
37
+ reason?: string;
38
+ }
39
+ /** Replace a ticket's tags. Values are lower-cased and de-duplicated. */
40
+ export declare class SetSupportTicketTagsDto {
41
+ tags: string[];
42
+ }
43
+ /**
44
+ * Close a ticket from the customer side.
45
+ *
46
+ * Separate from the agent status endpoint because the two carry different
47
+ * permissions and different meanings: a customer saying "this is sorted" is
48
+ * evidence about the outcome, an agent closing a ticket is a workflow action.
49
+ */
50
+ export declare class CloseSupportTicketDto {
51
+ message?: string;
52
+ }
53
+ /** Reopen a closed ticket. Counted, so the reopen rate stays honest. */
54
+ export declare class ReopenSupportTicketDto {
55
+ reason: string;
56
+ }
57
+ /** Attach documents already uploaded to clarion-dms. */
58
+ export declare class AttachSupportDocumentsDto {
59
+ documentIds: number[];
60
+ messageId?: string;
61
+ }
@@ -0,0 +1,41 @@
1
+ import { CountryCode } from '../../country/enums/country-code.enum';
2
+ import { SupportProviderCode } from '../enums/support-provider-code.enum';
3
+ import { SupportSlaState } from '../enums/support-sla.enum';
4
+ import { SupportTicketChannel } from '../enums/support-ticket-channel.enum';
5
+ import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
6
+ import { SupportTicketStatus } from '../enums/support-ticket-status.enum';
7
+ /**
8
+ * Filters for a ticket list.
9
+ *
10
+ * Every field here NARROWS what the caller may already see. None of them widens
11
+ * it: `organizationId` is honoured only for a super-admin, and for anybody else
12
+ * the tenant scope comes from their trusted context and is applied in the
13
+ * repository regardless of what arrives here.
14
+ */
15
+ export declare class SupportTicketQueryDto {
16
+ page?: number;
17
+ limit?: number;
18
+ search?: string;
19
+ sortBy?: string;
20
+ sortOrder?: 'ASC' | 'DESC';
21
+ status?: SupportTicketStatus;
22
+ activeOnly?: boolean;
23
+ priority?: SupportTicketPriority;
24
+ channel?: SupportTicketChannel;
25
+ countryCode?: CountryCode;
26
+ organizationId?: number;
27
+ controlCentreId?: number;
28
+ queueId?: string;
29
+ teamId?: string;
30
+ categoryId?: string;
31
+ assignedAgentId?: number;
32
+ unassignedOnly?: boolean;
33
+ customerUserId?: number;
34
+ slaState?: SupportSlaState;
35
+ breachedOnly?: boolean;
36
+ tag?: string;
37
+ externalProvider?: SupportProviderCode;
38
+ syncFailedOnly?: boolean;
39
+ from?: string;
40
+ to?: string;
41
+ }
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Every security- or business-sensitive thing that can happen in the support
3
+ * domain, as a closed vocabulary.
4
+ *
5
+ * A closed enum rather than free text because an audit trail nobody can query
6
+ * is not an audit trail. The admin filters on these values, and the operational
7
+ * runbook refers to them by name.
8
+ */
9
+ export declare enum SupportAuditAction {
10
+ TICKET_CREATED = "TICKET_CREATED",
11
+ TICKET_UPDATED = "TICKET_UPDATED",
12
+ TICKET_ASSIGNED = "TICKET_ASSIGNED",
13
+ TICKET_REASSIGNED = "TICKET_REASSIGNED",
14
+ TICKET_UNASSIGNED = "TICKET_UNASSIGNED",
15
+ TICKET_STATUS_CHANGED = "TICKET_STATUS_CHANGED",
16
+ TICKET_PRIORITY_CHANGED = "TICKET_PRIORITY_CHANGED",
17
+ TICKET_CATEGORY_CHANGED = "TICKET_CATEGORY_CHANGED",
18
+ TICKET_QUEUE_CHANGED = "TICKET_QUEUE_CHANGED",
19
+ TICKET_CLOSED = "TICKET_CLOSED",
20
+ TICKET_REOPENED = "TICKET_REOPENED",
21
+ TICKET_CANCELLED = "TICKET_CANCELLED",
22
+ TICKET_TAGGED = "TICKET_TAGGED",
23
+ TICKET_UNTAGGED = "TICKET_UNTAGGED",
24
+ TICKET_WATCHER_ADDED = "TICKET_WATCHER_ADDED",
25
+ TICKET_WATCHER_REMOVED = "TICKET_WATCHER_REMOVED",
26
+ MESSAGE_ADDED = "MESSAGE_ADDED",
27
+ INTERNAL_NOTE_ADDED = "INTERNAL_NOTE_ADDED",
28
+ ATTACHMENT_ADDED = "ATTACHMENT_ADDED",
29
+ ATTACHMENT_ACCESSED = "ATTACHMENT_ACCESSED",
30
+ ATTACHMENT_REMOVED = "ATTACHMENT_REMOVED",
31
+ FEEDBACK_CREATED = "FEEDBACK_CREATED",
32
+ FEEDBACK_REVIEWED = "FEEDBACK_REVIEWED",
33
+ FEEDBACK_RESPONDED = "FEEDBACK_RESPONDED",
34
+ FEEDBACK_STATUS_CHANGED = "FEEDBACK_STATUS_CHANGED",
35
+ FEEDBACK_CONVERTED_TO_TICKET = "FEEDBACK_CONVERTED_TO_TICKET",
36
+ SLA_WARNING_RAISED = "SLA_WARNING_RAISED",
37
+ SLA_BREACHED = "SLA_BREACHED",
38
+ SLA_POLICY_CREATED = "SLA_POLICY_CREATED",
39
+ SLA_POLICY_UPDATED = "SLA_POLICY_UPDATED",
40
+ SLA_POLICY_DELETED = "SLA_POLICY_DELETED",
41
+ QUEUE_CREATED = "QUEUE_CREATED",
42
+ QUEUE_UPDATED = "QUEUE_UPDATED",
43
+ QUEUE_DELETED = "QUEUE_DELETED",
44
+ TEAM_CREATED = "TEAM_CREATED",
45
+ TEAM_UPDATED = "TEAM_UPDATED",
46
+ TEAM_DELETED = "TEAM_DELETED",
47
+ TEAM_MEMBER_ADDED = "TEAM_MEMBER_ADDED",
48
+ TEAM_MEMBER_REMOVED = "TEAM_MEMBER_REMOVED",
49
+ CATEGORY_CREATED = "CATEGORY_CREATED",
50
+ CATEGORY_UPDATED = "CATEGORY_UPDATED",
51
+ CATEGORY_DELETED = "CATEGORY_DELETED",
52
+ PROVIDER_SYNC_QUEUED = "PROVIDER_SYNC_QUEUED",
53
+ PROVIDER_SYNC_SUCCEEDED = "PROVIDER_SYNC_SUCCEEDED",
54
+ PROVIDER_SYNC_FAILED = "PROVIDER_SYNC_FAILED",
55
+ PROVIDER_SYNC_RETRIED = "PROVIDER_SYNC_RETRIED",
56
+ PROVIDER_SYNC_DEAD_LETTERED = "PROVIDER_SYNC_DEAD_LETTERED",
57
+ PROVIDER_RECONCILED = "PROVIDER_RECONCILED",
58
+ PROVIDER_WEBHOOK_RECEIVED = "PROVIDER_WEBHOOK_RECEIVED",
59
+ PROVIDER_WEBHOOK_REJECTED = "PROVIDER_WEBHOOK_REJECTED"
60
+ }
61
+ /** What the audit entry was about, so a trail can be read per record. */
62
+ export declare enum SupportAuditEntityType {
63
+ TICKET = "TICKET",
64
+ TICKET_MESSAGE = "TICKET_MESSAGE",
65
+ TICKET_ATTACHMENT = "TICKET_ATTACHMENT",
66
+ FEEDBACK = "FEEDBACK",
67
+ QUEUE = "QUEUE",
68
+ TEAM = "TEAM",
69
+ CATEGORY = "CATEGORY",
70
+ SLA_POLICY = "SLA_POLICY",
71
+ PROVIDER_SYNC = "PROVIDER_SYNC"
72
+ }
73
+ /** Who performed the action. */
74
+ export declare enum SupportActorType {
75
+ USER = "USER",
76
+ /** A background job inside clarion-support. */
77
+ SYSTEM = "SYSTEM",
78
+ /** A change that arrived from the helpdesk. */
79
+ PROVIDER = "PROVIDER"
80
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * What a customer is telling us.
3
+ *
4
+ * Feedback stays inside Clarion whatever helpdesk is configured, so these
5
+ * values are never mapped onto a vendor's vocabulary and never leave the
6
+ * platform unless a piece of feedback is deliberately converted into a ticket.
7
+ */
8
+ export declare enum CustomerFeedbackType {
9
+ BUG_REPORT = "BUG_REPORT",
10
+ FEATURE_REQUEST = "FEATURE_REQUEST",
11
+ COMPLAINT = "COMPLAINT",
12
+ COMPLIMENT = "COMPLIMENT",
13
+ GENERAL = "GENERAL",
14
+ /** A rating of the emergency or security service itself. */
15
+ SERVICE_RATING = "SERVICE_RATING",
16
+ /** A rating of a support interaction. */
17
+ SUPPORT_RATING = "SUPPORT_RATING"
18
+ }
19
+ /** The feedback types that carry a star rating and feed satisfaction reporting. */
20
+ export declare const RATING_CUSTOMER_FEEDBACK_TYPES: readonly CustomerFeedbackType[];
21
+ /** Where a piece of feedback is in its review workflow. */
22
+ export declare enum CustomerFeedbackStatus {
23
+ NEW = "NEW",
24
+ UNDER_REVIEW = "UNDER_REVIEW",
25
+ /** Read and acknowledged, with no reply owed. */
26
+ ACKNOWLEDGED = "ACKNOWLEDGED",
27
+ /** A reply has been sent to the customer. */
28
+ RESPONDED = "RESPONDED",
29
+ /** Promoted into a ticket; `convertedTicketId` points at it. */
30
+ CONVERTED_TO_TICKET = "CONVERTED_TO_TICKET",
31
+ CLOSED = "CLOSED",
32
+ /** Spam, abuse or a test submission. Kept, never counted in satisfaction metrics. */
33
+ DISMISSED = "DISMISSED"
34
+ }
35
+ /** Transitions the feedback workflow permits. */
36
+ export declare const CUSTOMER_FEEDBACK_TRANSITIONS: Readonly<Record<CustomerFeedbackStatus, readonly CustomerFeedbackStatus[]>>;
37
+ /** Statuses that still need somebody to look at them. */
38
+ export declare const OPEN_CUSTOMER_FEEDBACK_STATUSES: readonly CustomerFeedbackStatus[];
39
+ /** Where the feedback was submitted from. */
40
+ export declare enum CustomerFeedbackChannel {
41
+ MOBILE_APP = "MOBILE_APP",
42
+ WEB_APP = "WEB_APP",
43
+ AGENT_PORTAL = "AGENT_PORTAL",
44
+ API = "API"
45
+ }
46
+ /**
47
+ * Coarse sentiment.
48
+ *
49
+ * Derived from the feedback TYPE and rating only - never inferred from the
50
+ * message text. There is deliberately no classifier here: a wrong automated
51
+ * reading of "the guard never came" is worse than no reading at all. The field
52
+ * exists so a real classifier can be added later without a migration.
53
+ */
54
+ export declare enum CustomerFeedbackSentiment {
55
+ POSITIVE = "POSITIVE",
56
+ NEUTRAL = "NEUTRAL",
57
+ NEGATIVE = "NEGATIVE",
58
+ UNKNOWN = "UNKNOWN"
59
+ }
60
+ /** Who wrote an entry in a feedback thread. */
61
+ export declare enum CustomerFeedbackMessageAuthorType {
62
+ CUSTOMER = "CUSTOMER",
63
+ REVIEWER = "REVIEWER",
64
+ SYSTEM = "SYSTEM"
65
+ }
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Identifies the helpdesk platform a deployment operates support tickets on.
3
+ *
4
+ * Provider-neutral by design: the support domain in clarion-support - tickets,
5
+ * messages, feedback, queues, SLAs, audit and the whole REST surface - never
6
+ * branches on a specific helpdesk. Only the per-provider adapter inside that
7
+ * service understands a vendor's wire format, authentication and payload shape,
8
+ * and no vendor type is allowed to escape it.
9
+ *
10
+ * The value is stored on every ticket that has been mirrored outward, so a
11
+ * deployment that changes provider keeps an unambiguous record of which
12
+ * platform each historical ticket actually lives on. That is the whole reason
13
+ * it is persisted rather than read from configuration at display time.
14
+ */
15
+ export declare enum SupportProviderCode {
16
+ /** Zammad - self-hosted, the platform default. */
17
+ ZAMMAD = "ZAMMAD",
18
+ /** Freshdesk - SaaS, the initial alternative. */
19
+ FRESHDESK = "FRESHDESK",
20
+ /**
21
+ * No external helpdesk. Clarion is the whole system of record.
22
+ *
23
+ * A first-class choice, not a failure state: an organization can run support
24
+ * entirely inside Clarion, and a deployment that has not finished
25
+ * provisioning a helpdesk still takes tickets rather than refusing them.
26
+ */
27
+ NONE = "NONE"
28
+ }
29
+ /** Providers that are actually mirrored to an external helpdesk. */
30
+ export declare const EXTERNAL_SUPPORT_PROVIDERS: readonly SupportProviderCode[];
31
+ /** The platform default when a deployment sets no provider at all. */
32
+ export declare const DEFAULT_SUPPORT_PROVIDER: SupportProviderCode;
33
+ /**
34
+ * What a helpdesk adapter is able to do.
35
+ *
36
+ * Published by each adapter rather than assumed, because helpdesks differ
37
+ * materially: both Zammad and Freshdesk can take a public reply, but only some
38
+ * deployments enable attachments, and a vendor without webhooks has to be
39
+ * reconciled by polling instead. The admin builds its buttons from this, so a
40
+ * capability a provider lacks is never offered to an operator as if it worked.
41
+ */
42
+ export declare enum SupportProviderCapability {
43
+ CREATE_TICKET = "CREATE_TICKET",
44
+ UPDATE_TICKET = "UPDATE_TICKET",
45
+ PUBLIC_REPLY = "PUBLIC_REPLY",
46
+ INTERNAL_NOTE = "INTERNAL_NOTE",
47
+ ASSIGN_TICKET = "ASSIGN_TICKET",
48
+ CHANGE_STATUS = "CHANGE_STATUS",
49
+ CLOSE_REOPEN = "CLOSE_REOPEN",
50
+ ATTACHMENTS = "ATTACHMENTS",
51
+ CONTACTS = "CONTACTS",
52
+ SEARCH = "SEARCH",
53
+ /** The provider can push changes back to Clarion over a webhook. */
54
+ WEBHOOKS = "WEBHOOKS",
55
+ /** A single ticket can be re-read for reconciliation. */
56
+ FETCH_TICKET = "FETCH_TICKET"
57
+ }
@@ -0,0 +1,41 @@
1
+ /**
2
+ * The kind of Clarion record a ticket or a piece of feedback is about.
3
+ *
4
+ * A reference only. clarion-support stores the type and the id and nothing
5
+ * else: it never copies an incident, an invoice or a chat message into its own
6
+ * schema, and it never declares a database foreign key across a service
7
+ * boundary.
8
+ *
9
+ * Ids are carried as text because the owning services do not agree on a type -
10
+ * incidents, organizations and newsfeed posts are integers, a chat conversation
11
+ * is a uuid. Storing the widest safe representation is what keeps this from
12
+ * needing a migration the first time one of them changes.
13
+ */
14
+ export declare enum SupportRelatedEntityType {
15
+ INCIDENT = "INCIDENT",
16
+ BILLING_SUBSCRIPTION = "BILLING_SUBSCRIPTION",
17
+ BILLING_INVOICE = "BILLING_INVOICE",
18
+ BILLING_PAYMENT = "BILLING_PAYMENT",
19
+ BILLING_PACKAGE = "BILLING_PACKAGE",
20
+ CHAT_CONVERSATION = "CHAT_CONVERSATION",
21
+ NEWSFEED_POST = "NEWSFEED_POST",
22
+ NEWSFEED_COMMENT = "NEWSFEED_COMMENT",
23
+ PARTNER_DISPATCH = "PARTNER_DISPATCH",
24
+ RESPONSE_UNIT = "RESPONSE_UNIT",
25
+ ORGANIZATION = "ORGANIZATION",
26
+ USER = "USER",
27
+ /** A screen or feature in a client application, for contextual feedback. */
28
+ APP_SCREEN = "APP_SCREEN",
29
+ /** Another support ticket - a duplicate, or a follow-up. */
30
+ SUPPORT_TICKET = "SUPPORT_TICKET",
31
+ CUSTOMER_FEEDBACK = "CUSTOMER_FEEDBACK",
32
+ OTHER = "OTHER"
33
+ }
34
+ /**
35
+ * Related entities whose detail is fetched from another service for display.
36
+ *
37
+ * The admin ticket page enriches only these, and only for a reader who already
38
+ * passed that service's own authorization. Everything else is shown as a bare
39
+ * type and id, which is honest rather than broken.
40
+ */
41
+ export declare const ENRICHABLE_SUPPORT_RELATED_ENTITY_TYPES: readonly SupportRelatedEntityType[];
@@ -0,0 +1,48 @@
1
+ /**
2
+ * How a queue hands a ticket to an agent.
3
+ *
4
+ * Only MANUAL is honoured by the first implementation. The other members exist
5
+ * so that adding automatic assignment later is a service change and not a
6
+ * schema change, and so the admin can already show an operator what a queue
7
+ * will eventually do.
8
+ */
9
+ export declare enum SupportQueueAssignmentStrategy {
10
+ /** A supervisor assigns. The queue is a shared inbox. */
11
+ MANUAL = "MANUAL",
12
+ /** Round-robin across available team members. Reserved. */
13
+ ROUND_ROBIN = "ROUND_ROBIN",
14
+ /** To whoever holds the fewest open tickets. Reserved. */
15
+ LEAST_BUSY = "LEAST_BUSY"
16
+ }
17
+ /**
18
+ * What a routing rule matches on.
19
+ *
20
+ * Rules are evaluated in priority order and the first match wins, so the
21
+ * dimensions are deliberately few and orthogonal. Anything cleverer belongs in
22
+ * a later classification service, not in a rule table an operator maintains by
23
+ * hand.
24
+ */
25
+ export declare enum SupportRoutingMatchType {
26
+ /** Any ticket in the organization. The catch-all rule. */
27
+ ANY = "ANY",
28
+ CATEGORY = "CATEGORY",
29
+ PRIORITY = "PRIORITY",
30
+ CHANNEL = "CHANNEL",
31
+ COUNTRY = "COUNTRY",
32
+ CONTROL_CENTRE = "CONTROL_CENTRE",
33
+ /** The client application the ticket came from, e.g. G4S or GardaWorld. */
34
+ APP_ID = "APP_ID",
35
+ /** The kind of Clarion record the ticket is about. */
36
+ RELATED_ENTITY_TYPE = "RELATED_ENTITY_TYPE"
37
+ }
38
+ /** A support person's standing inside a team, independent of their platform role. */
39
+ export declare enum SupportTeamMemberRole {
40
+ /** Works tickets. */
41
+ AGENT = "AGENT",
42
+ /** Works tickets, assigns them, and receives SLA warnings for the team. */
43
+ SUPERVISOR = "SUPERVISOR",
44
+ /** Owns the team's configuration and receives breach escalations. */
45
+ MANAGER = "MANAGER"
46
+ }
47
+ /** Team roles that receive SLA escalations, most junior first. */
48
+ export declare const SUPPORT_ESCALATION_TEAM_ROLES: readonly SupportTeamMemberRole[];
@@ -0,0 +1,47 @@
1
+ /** Where a ticket stands against one SLA target. */
2
+ export declare enum SupportSlaState {
3
+ /** Inside the target with time to spare. */
4
+ ON_TRACK = "ON_TRACK",
5
+ /** Inside the target but past the warning threshold. */
6
+ WARNING = "WARNING",
7
+ /** The target elapsed without being met. */
8
+ BREACHED = "BREACHED",
9
+ /** The clock is stopped because the ticket is waiting on the customer. */
10
+ PAUSED = "PAUSED",
11
+ /** The target was met. Terminal. */
12
+ MET = "MET",
13
+ /** No policy applies, so there is nothing to be on track against. */
14
+ NOT_APPLICABLE = "NOT_APPLICABLE"
15
+ }
16
+ /** Which clock a state describes. A ticket carries one of each. */
17
+ export declare enum SupportSlaTarget {
18
+ FIRST_RESPONSE = "FIRST_RESPONSE",
19
+ RESOLUTION = "RESOLUTION"
20
+ }
21
+ /** The kinds of SLA event recorded against a ticket, for audit and reporting. */
22
+ export declare enum SupportSlaEventType {
23
+ /** A deadline was calculated for the first time. */
24
+ SCHEDULED = "SCHEDULED",
25
+ WARNING_RAISED = "WARNING_RAISED",
26
+ BREACHED = "BREACHED",
27
+ MET = "MET",
28
+ PAUSED = "PAUSED",
29
+ RESUMED = "RESUMED",
30
+ /** The applicable policy changed - a priority change, or a re-queue. */
31
+ RECALCULATED = "RECALCULATED",
32
+ /** The clocks were stopped without being met, e.g. the ticket was cancelled. */
33
+ CANCELLED = "CANCELLED"
34
+ }
35
+ /**
36
+ * How a policy measures elapsed time.
37
+ *
38
+ * CALENDAR runs around the clock; BUSINESS runs only inside the working
39
+ * calendar of the ticket's country. The distinction is not cosmetic: a NORMAL
40
+ * ticket raised at 17:00 on a Friday with an eight-hour calendar target is
41
+ * breached before anybody is back at a desk, which trains a support team to
42
+ * ignore the breach column entirely.
43
+ */
44
+ export declare enum SupportSlaClock {
45
+ CALENDAR = "CALENDAR",
46
+ BUSINESS = "BUSINESS"
47
+ }