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,221 @@
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 { ApiPropertyOptional } from '@nestjs/swagger';
11
+ import { Transform, Type } from 'class-transformer';
12
+ import { IsBoolean, IsDateString, IsEnum, IsIn, IsInt, IsOptional, IsPositive, IsString, IsUUID, Max, MaxLength, Min, } from 'class-validator';
13
+ import { CountryCode } from '../../country/enums/country-code.enum';
14
+ import { SupportProviderCode } from '../enums/support-provider-code.enum';
15
+ import { SupportSlaState } from '../enums/support-sla.enum';
16
+ import { SupportTicketChannel } from '../enums/support-ticket-channel.enum';
17
+ import { SupportTicketPriority } from '../enums/support-ticket-priority.enum';
18
+ import { SupportTicketStatus } from '../enums/support-ticket-status.enum';
19
+ /** Turns 'true'/'false' query strings into booleans without accepting anything else. */
20
+ const toOptionalBoolean = ({ value }) => {
21
+ if (value === undefined || value === null || value === '')
22
+ return undefined;
23
+ if (typeof value === 'boolean')
24
+ return value;
25
+ const normalized = String(value).toLowerCase();
26
+ if (normalized === 'true')
27
+ return true;
28
+ if (normalized === 'false')
29
+ return false;
30
+ return undefined;
31
+ };
32
+ /**
33
+ * Filters for a ticket list.
34
+ *
35
+ * Every field here NARROWS what the caller may already see. None of them widens
36
+ * it: `organizationId` is honoured only for a super-admin, and for anybody else
37
+ * the tenant scope comes from their trusted context and is applied in the
38
+ * repository regardless of what arrives here.
39
+ */
40
+ export class SupportTicketQueryDto {
41
+ }
42
+ __decorate([
43
+ ApiPropertyOptional({ minimum: 1, default: 1 }),
44
+ Type(() => Number),
45
+ IsInt(),
46
+ Min(1),
47
+ IsOptional(),
48
+ __metadata("design:type", Number)
49
+ ], SupportTicketQueryDto.prototype, "page", void 0);
50
+ __decorate([
51
+ ApiPropertyOptional({ minimum: 1, maximum: 200, default: 25 }),
52
+ Type(() => Number),
53
+ IsInt(),
54
+ Min(1),
55
+ Max(200),
56
+ IsOptional(),
57
+ __metadata("design:type", Number)
58
+ ], SupportTicketQueryDto.prototype, "limit", void 0);
59
+ __decorate([
60
+ ApiPropertyOptional({
61
+ description: 'Free text. A value that looks like a ticket number goes straight to that index; ' +
62
+ 'anything else runs a full-text search over subject, description and customer-visible messages.',
63
+ }),
64
+ IsString(),
65
+ MaxLength(200),
66
+ IsOptional(),
67
+ __metadata("design:type", String)
68
+ ], SupportTicketQueryDto.prototype, "search", void 0);
69
+ __decorate([
70
+ ApiPropertyOptional({
71
+ description: 'Column to sort on.',
72
+ enum: ['createdAt', 'updatedAt', 'priority', 'status', 'firstResponseDueAt', 'resolutionDueAt'],
73
+ }),
74
+ IsIn(['createdAt', 'updatedAt', 'priority', 'status', 'firstResponseDueAt', 'resolutionDueAt']),
75
+ IsOptional(),
76
+ __metadata("design:type", String)
77
+ ], SupportTicketQueryDto.prototype, "sortBy", void 0);
78
+ __decorate([
79
+ ApiPropertyOptional({ enum: ['ASC', 'DESC'], default: 'DESC' }),
80
+ IsIn(['ASC', 'DESC']),
81
+ IsOptional(),
82
+ __metadata("design:type", String)
83
+ ], SupportTicketQueryDto.prototype, "sortOrder", void 0);
84
+ __decorate([
85
+ ApiPropertyOptional({ enum: SupportTicketStatus }),
86
+ IsEnum(SupportTicketStatus),
87
+ IsOptional(),
88
+ __metadata("design:type", String)
89
+ ], SupportTicketQueryDto.prototype, "status", void 0);
90
+ __decorate([
91
+ ApiPropertyOptional({
92
+ description: 'Show only tickets that are still live. Overrides `status` when both are sent.',
93
+ }),
94
+ Transform(toOptionalBoolean),
95
+ IsBoolean(),
96
+ IsOptional(),
97
+ __metadata("design:type", Boolean)
98
+ ], SupportTicketQueryDto.prototype, "activeOnly", void 0);
99
+ __decorate([
100
+ ApiPropertyOptional({ enum: SupportTicketPriority }),
101
+ IsEnum(SupportTicketPriority),
102
+ IsOptional(),
103
+ __metadata("design:type", String)
104
+ ], SupportTicketQueryDto.prototype, "priority", void 0);
105
+ __decorate([
106
+ ApiPropertyOptional({ enum: SupportTicketChannel }),
107
+ IsEnum(SupportTicketChannel),
108
+ IsOptional(),
109
+ __metadata("design:type", String)
110
+ ], SupportTicketQueryDto.prototype, "channel", void 0);
111
+ __decorate([
112
+ ApiPropertyOptional({ enum: CountryCode }),
113
+ IsEnum(CountryCode),
114
+ IsOptional(),
115
+ __metadata("design:type", String)
116
+ ], SupportTicketQueryDto.prototype, "countryCode", void 0);
117
+ __decorate([
118
+ ApiPropertyOptional({ description: 'Super-admin only. Ignored for every other caller.' }),
119
+ Type(() => Number),
120
+ IsInt(),
121
+ IsPositive(),
122
+ IsOptional(),
123
+ __metadata("design:type", Number)
124
+ ], SupportTicketQueryDto.prototype, "organizationId", void 0);
125
+ __decorate([
126
+ ApiPropertyOptional(),
127
+ Type(() => Number),
128
+ IsInt(),
129
+ IsPositive(),
130
+ IsOptional(),
131
+ __metadata("design:type", Number)
132
+ ], SupportTicketQueryDto.prototype, "controlCentreId", void 0);
133
+ __decorate([
134
+ ApiPropertyOptional(),
135
+ IsUUID(),
136
+ IsOptional(),
137
+ __metadata("design:type", String)
138
+ ], SupportTicketQueryDto.prototype, "queueId", void 0);
139
+ __decorate([
140
+ ApiPropertyOptional(),
141
+ IsUUID(),
142
+ IsOptional(),
143
+ __metadata("design:type", String)
144
+ ], SupportTicketQueryDto.prototype, "teamId", void 0);
145
+ __decorate([
146
+ ApiPropertyOptional(),
147
+ IsUUID(),
148
+ IsOptional(),
149
+ __metadata("design:type", String)
150
+ ], SupportTicketQueryDto.prototype, "categoryId", void 0);
151
+ __decorate([
152
+ ApiPropertyOptional({ description: 'Tickets assigned to this agent.' }),
153
+ Type(() => Number),
154
+ IsInt(),
155
+ IsPositive(),
156
+ IsOptional(),
157
+ __metadata("design:type", Number)
158
+ ], SupportTicketQueryDto.prototype, "assignedAgentId", void 0);
159
+ __decorate([
160
+ ApiPropertyOptional({ description: 'Only tickets nobody owns. The queue supervisor\'s first filter.' }),
161
+ Transform(toOptionalBoolean),
162
+ IsBoolean(),
163
+ IsOptional(),
164
+ __metadata("design:type", Boolean)
165
+ ], SupportTicketQueryDto.prototype, "unassignedOnly", void 0);
166
+ __decorate([
167
+ ApiPropertyOptional({ description: 'Tickets raised by, or on behalf of, this customer.' }),
168
+ Type(() => Number),
169
+ IsInt(),
170
+ IsPositive(),
171
+ IsOptional(),
172
+ __metadata("design:type", Number)
173
+ ], SupportTicketQueryDto.prototype, "customerUserId", void 0);
174
+ __decorate([
175
+ ApiPropertyOptional({ enum: SupportSlaState, description: 'Filter on either SLA clock.' }),
176
+ IsEnum(SupportSlaState),
177
+ IsOptional(),
178
+ __metadata("design:type", String)
179
+ ], SupportTicketQueryDto.prototype, "slaState", void 0);
180
+ __decorate([
181
+ ApiPropertyOptional({ description: 'Only tickets past a deadline on either clock.' }),
182
+ Transform(toOptionalBoolean),
183
+ IsBoolean(),
184
+ IsOptional(),
185
+ __metadata("design:type", Boolean)
186
+ ], SupportTicketQueryDto.prototype, "breachedOnly", void 0);
187
+ __decorate([
188
+ ApiPropertyOptional({ description: 'A single tag. Matched exactly, lower-cased.' }),
189
+ IsString(),
190
+ MaxLength(50),
191
+ IsOptional(),
192
+ __metadata("design:type", String)
193
+ ], SupportTicketQueryDto.prototype, "tag", void 0);
194
+ __decorate([
195
+ ApiPropertyOptional({ enum: SupportProviderCode }),
196
+ IsEnum(SupportProviderCode),
197
+ IsOptional(),
198
+ __metadata("design:type", String)
199
+ ], SupportTicketQueryDto.prototype, "externalProvider", void 0);
200
+ __decorate([
201
+ ApiPropertyOptional({
202
+ description: 'Only tickets whose helpdesk mirror has failed. The synchronization triage filter.',
203
+ }),
204
+ Transform(toOptionalBoolean),
205
+ IsBoolean(),
206
+ IsOptional(),
207
+ __metadata("design:type", Boolean)
208
+ ], SupportTicketQueryDto.prototype, "syncFailedOnly", void 0);
209
+ __decorate([
210
+ ApiPropertyOptional({ description: 'Created at or after this instant.' }),
211
+ IsDateString(),
212
+ IsOptional(),
213
+ __metadata("design:type", String)
214
+ ], SupportTicketQueryDto.prototype, "from", void 0);
215
+ __decorate([
216
+ ApiPropertyOptional({ description: 'Created at or before this instant.' }),
217
+ IsDateString(),
218
+ IsOptional(),
219
+ __metadata("design:type", String)
220
+ ], SupportTicketQueryDto.prototype, "to", void 0);
221
+ //# sourceMappingURL=support-ticket-query.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-ticket-query.dto.js","sourceRoot":"","sources":["../../../../../src/modules/support/dtos/support-ticket-query.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
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 var SupportAuditAction;
10
+ (function (SupportAuditAction) {
11
+ SupportAuditAction["TICKET_CREATED"] = "TICKET_CREATED";
12
+ SupportAuditAction["TICKET_UPDATED"] = "TICKET_UPDATED";
13
+ SupportAuditAction["TICKET_ASSIGNED"] = "TICKET_ASSIGNED";
14
+ SupportAuditAction["TICKET_REASSIGNED"] = "TICKET_REASSIGNED";
15
+ SupportAuditAction["TICKET_UNASSIGNED"] = "TICKET_UNASSIGNED";
16
+ SupportAuditAction["TICKET_STATUS_CHANGED"] = "TICKET_STATUS_CHANGED";
17
+ SupportAuditAction["TICKET_PRIORITY_CHANGED"] = "TICKET_PRIORITY_CHANGED";
18
+ SupportAuditAction["TICKET_CATEGORY_CHANGED"] = "TICKET_CATEGORY_CHANGED";
19
+ SupportAuditAction["TICKET_QUEUE_CHANGED"] = "TICKET_QUEUE_CHANGED";
20
+ SupportAuditAction["TICKET_CLOSED"] = "TICKET_CLOSED";
21
+ SupportAuditAction["TICKET_REOPENED"] = "TICKET_REOPENED";
22
+ SupportAuditAction["TICKET_CANCELLED"] = "TICKET_CANCELLED";
23
+ SupportAuditAction["TICKET_TAGGED"] = "TICKET_TAGGED";
24
+ SupportAuditAction["TICKET_UNTAGGED"] = "TICKET_UNTAGGED";
25
+ SupportAuditAction["TICKET_WATCHER_ADDED"] = "TICKET_WATCHER_ADDED";
26
+ SupportAuditAction["TICKET_WATCHER_REMOVED"] = "TICKET_WATCHER_REMOVED";
27
+ SupportAuditAction["MESSAGE_ADDED"] = "MESSAGE_ADDED";
28
+ SupportAuditAction["INTERNAL_NOTE_ADDED"] = "INTERNAL_NOTE_ADDED";
29
+ SupportAuditAction["ATTACHMENT_ADDED"] = "ATTACHMENT_ADDED";
30
+ SupportAuditAction["ATTACHMENT_ACCESSED"] = "ATTACHMENT_ACCESSED";
31
+ SupportAuditAction["ATTACHMENT_REMOVED"] = "ATTACHMENT_REMOVED";
32
+ SupportAuditAction["FEEDBACK_CREATED"] = "FEEDBACK_CREATED";
33
+ SupportAuditAction["FEEDBACK_REVIEWED"] = "FEEDBACK_REVIEWED";
34
+ SupportAuditAction["FEEDBACK_RESPONDED"] = "FEEDBACK_RESPONDED";
35
+ SupportAuditAction["FEEDBACK_STATUS_CHANGED"] = "FEEDBACK_STATUS_CHANGED";
36
+ SupportAuditAction["FEEDBACK_CONVERTED_TO_TICKET"] = "FEEDBACK_CONVERTED_TO_TICKET";
37
+ SupportAuditAction["SLA_WARNING_RAISED"] = "SLA_WARNING_RAISED";
38
+ SupportAuditAction["SLA_BREACHED"] = "SLA_BREACHED";
39
+ SupportAuditAction["SLA_POLICY_CREATED"] = "SLA_POLICY_CREATED";
40
+ SupportAuditAction["SLA_POLICY_UPDATED"] = "SLA_POLICY_UPDATED";
41
+ SupportAuditAction["SLA_POLICY_DELETED"] = "SLA_POLICY_DELETED";
42
+ SupportAuditAction["QUEUE_CREATED"] = "QUEUE_CREATED";
43
+ SupportAuditAction["QUEUE_UPDATED"] = "QUEUE_UPDATED";
44
+ SupportAuditAction["QUEUE_DELETED"] = "QUEUE_DELETED";
45
+ SupportAuditAction["TEAM_CREATED"] = "TEAM_CREATED";
46
+ SupportAuditAction["TEAM_UPDATED"] = "TEAM_UPDATED";
47
+ SupportAuditAction["TEAM_DELETED"] = "TEAM_DELETED";
48
+ SupportAuditAction["TEAM_MEMBER_ADDED"] = "TEAM_MEMBER_ADDED";
49
+ SupportAuditAction["TEAM_MEMBER_REMOVED"] = "TEAM_MEMBER_REMOVED";
50
+ SupportAuditAction["CATEGORY_CREATED"] = "CATEGORY_CREATED";
51
+ SupportAuditAction["CATEGORY_UPDATED"] = "CATEGORY_UPDATED";
52
+ SupportAuditAction["CATEGORY_DELETED"] = "CATEGORY_DELETED";
53
+ SupportAuditAction["PROVIDER_SYNC_QUEUED"] = "PROVIDER_SYNC_QUEUED";
54
+ SupportAuditAction["PROVIDER_SYNC_SUCCEEDED"] = "PROVIDER_SYNC_SUCCEEDED";
55
+ SupportAuditAction["PROVIDER_SYNC_FAILED"] = "PROVIDER_SYNC_FAILED";
56
+ SupportAuditAction["PROVIDER_SYNC_RETRIED"] = "PROVIDER_SYNC_RETRIED";
57
+ SupportAuditAction["PROVIDER_SYNC_DEAD_LETTERED"] = "PROVIDER_SYNC_DEAD_LETTERED";
58
+ SupportAuditAction["PROVIDER_RECONCILED"] = "PROVIDER_RECONCILED";
59
+ SupportAuditAction["PROVIDER_WEBHOOK_RECEIVED"] = "PROVIDER_WEBHOOK_RECEIVED";
60
+ SupportAuditAction["PROVIDER_WEBHOOK_REJECTED"] = "PROVIDER_WEBHOOK_REJECTED";
61
+ })(SupportAuditAction || (SupportAuditAction = {}));
62
+ /** What the audit entry was about, so a trail can be read per record. */
63
+ export var SupportAuditEntityType;
64
+ (function (SupportAuditEntityType) {
65
+ SupportAuditEntityType["TICKET"] = "TICKET";
66
+ SupportAuditEntityType["TICKET_MESSAGE"] = "TICKET_MESSAGE";
67
+ SupportAuditEntityType["TICKET_ATTACHMENT"] = "TICKET_ATTACHMENT";
68
+ SupportAuditEntityType["FEEDBACK"] = "FEEDBACK";
69
+ SupportAuditEntityType["QUEUE"] = "QUEUE";
70
+ SupportAuditEntityType["TEAM"] = "TEAM";
71
+ SupportAuditEntityType["CATEGORY"] = "CATEGORY";
72
+ SupportAuditEntityType["SLA_POLICY"] = "SLA_POLICY";
73
+ SupportAuditEntityType["PROVIDER_SYNC"] = "PROVIDER_SYNC";
74
+ })(SupportAuditEntityType || (SupportAuditEntityType = {}));
75
+ /** Who performed the action. */
76
+ export var SupportActorType;
77
+ (function (SupportActorType) {
78
+ SupportActorType["USER"] = "USER";
79
+ /** A background job inside clarion-support. */
80
+ SupportActorType["SYSTEM"] = "SYSTEM";
81
+ /** A change that arrived from the helpdesk. */
82
+ SupportActorType["PROVIDER"] = "PROVIDER";
83
+ })(SupportActorType || (SupportActorType = {}));
84
+ //# sourceMappingURL=support-audit-action.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-audit-action.enum.js","sourceRoot":"","sources":["../../../../../src/modules/support/enums/support-audit-action.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,kBAwDX;AAxDD,WAAY,kBAAkB;IAC1B,uDAAiC,CAAA;IACjC,uDAAiC,CAAA;IACjC,yDAAmC,CAAA;IACnC,6DAAuC,CAAA;IACvC,6DAAuC,CAAA;IACvC,qEAA+C,CAAA;IAC/C,yEAAmD,CAAA;IACnD,yEAAmD,CAAA;IACnD,mEAA6C,CAAA;IAC7C,qDAA+B,CAAA;IAC/B,yDAAmC,CAAA;IACnC,2DAAqC,CAAA;IACrC,qDAA+B,CAAA;IAC/B,yDAAmC,CAAA;IACnC,mEAA6C,CAAA;IAC7C,uEAAiD,CAAA;IAEjD,qDAA+B,CAAA;IAC/B,iEAA2C,CAAA;IAC3C,2DAAqC,CAAA;IACrC,iEAA2C,CAAA;IAC3C,+DAAyC,CAAA;IAEzC,2DAAqC,CAAA;IACrC,6DAAuC,CAAA;IACvC,+DAAyC,CAAA;IACzC,yEAAmD,CAAA;IACnD,mFAA6D,CAAA;IAE7D,+DAAyC,CAAA;IACzC,mDAA6B,CAAA;IAC7B,+DAAyC,CAAA;IACzC,+DAAyC,CAAA;IACzC,+DAAyC,CAAA;IAEzC,qDAA+B,CAAA;IAC/B,qDAA+B,CAAA;IAC/B,qDAA+B,CAAA;IAC/B,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,mDAA6B,CAAA;IAC7B,6DAAuC,CAAA;IACvC,iEAA2C,CAAA;IAC3C,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IACrC,2DAAqC,CAAA;IAErC,mEAA6C,CAAA;IAC7C,yEAAmD,CAAA;IACnD,mEAA6C,CAAA;IAC7C,qEAA+C,CAAA;IAC/C,iFAA2D,CAAA;IAC3D,iEAA2C,CAAA;IAC3C,6EAAuD,CAAA;IACvD,6EAAuD,CAAA;AAC3D,CAAC,EAxDW,kBAAkB,KAAlB,kBAAkB,QAwD7B;AAED,yEAAyE;AACzE,MAAM,CAAN,IAAY,sBAUX;AAVD,WAAY,sBAAsB;IAC9B,2CAAiB,CAAA;IACjB,2DAAiC,CAAA;IACjC,iEAAuC,CAAA;IACvC,+CAAqB,CAAA;IACrB,yCAAe,CAAA;IACf,uCAAa,CAAA;IACb,+CAAqB,CAAA;IACrB,mDAAyB,CAAA;IACzB,yDAA+B,CAAA;AACnC,CAAC,EAVW,sBAAsB,KAAtB,sBAAsB,QAUjC;AAED,gCAAgC;AAChC,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IACxB,iCAAa,CAAA;IACb,+CAA+C;IAC/C,qCAAiB,CAAA;IACjB,+CAA+C;IAC/C,yCAAqB,CAAA;AACzB,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B"}
@@ -0,0 +1,107 @@
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 var CustomerFeedbackType;
9
+ (function (CustomerFeedbackType) {
10
+ CustomerFeedbackType["BUG_REPORT"] = "BUG_REPORT";
11
+ CustomerFeedbackType["FEATURE_REQUEST"] = "FEATURE_REQUEST";
12
+ CustomerFeedbackType["COMPLAINT"] = "COMPLAINT";
13
+ CustomerFeedbackType["COMPLIMENT"] = "COMPLIMENT";
14
+ CustomerFeedbackType["GENERAL"] = "GENERAL";
15
+ /** A rating of the emergency or security service itself. */
16
+ CustomerFeedbackType["SERVICE_RATING"] = "SERVICE_RATING";
17
+ /** A rating of a support interaction. */
18
+ CustomerFeedbackType["SUPPORT_RATING"] = "SUPPORT_RATING";
19
+ })(CustomerFeedbackType || (CustomerFeedbackType = {}));
20
+ /** The feedback types that carry a star rating and feed satisfaction reporting. */
21
+ export const RATING_CUSTOMER_FEEDBACK_TYPES = [
22
+ CustomerFeedbackType.SERVICE_RATING,
23
+ CustomerFeedbackType.SUPPORT_RATING,
24
+ ];
25
+ /** Where a piece of feedback is in its review workflow. */
26
+ export var CustomerFeedbackStatus;
27
+ (function (CustomerFeedbackStatus) {
28
+ CustomerFeedbackStatus["NEW"] = "NEW";
29
+ CustomerFeedbackStatus["UNDER_REVIEW"] = "UNDER_REVIEW";
30
+ /** Read and acknowledged, with no reply owed. */
31
+ CustomerFeedbackStatus["ACKNOWLEDGED"] = "ACKNOWLEDGED";
32
+ /** A reply has been sent to the customer. */
33
+ CustomerFeedbackStatus["RESPONDED"] = "RESPONDED";
34
+ /** Promoted into a ticket; `convertedTicketId` points at it. */
35
+ CustomerFeedbackStatus["CONVERTED_TO_TICKET"] = "CONVERTED_TO_TICKET";
36
+ CustomerFeedbackStatus["CLOSED"] = "CLOSED";
37
+ /** Spam, abuse or a test submission. Kept, never counted in satisfaction metrics. */
38
+ CustomerFeedbackStatus["DISMISSED"] = "DISMISSED";
39
+ })(CustomerFeedbackStatus || (CustomerFeedbackStatus = {}));
40
+ /** Transitions the feedback workflow permits. */
41
+ export const CUSTOMER_FEEDBACK_TRANSITIONS = {
42
+ [CustomerFeedbackStatus.NEW]: [
43
+ CustomerFeedbackStatus.UNDER_REVIEW,
44
+ CustomerFeedbackStatus.ACKNOWLEDGED,
45
+ CustomerFeedbackStatus.RESPONDED,
46
+ CustomerFeedbackStatus.CONVERTED_TO_TICKET,
47
+ CustomerFeedbackStatus.DISMISSED,
48
+ ],
49
+ [CustomerFeedbackStatus.UNDER_REVIEW]: [
50
+ CustomerFeedbackStatus.ACKNOWLEDGED,
51
+ CustomerFeedbackStatus.RESPONDED,
52
+ CustomerFeedbackStatus.CONVERTED_TO_TICKET,
53
+ CustomerFeedbackStatus.CLOSED,
54
+ CustomerFeedbackStatus.DISMISSED,
55
+ ],
56
+ [CustomerFeedbackStatus.ACKNOWLEDGED]: [
57
+ CustomerFeedbackStatus.UNDER_REVIEW,
58
+ CustomerFeedbackStatus.RESPONDED,
59
+ CustomerFeedbackStatus.CONVERTED_TO_TICKET,
60
+ CustomerFeedbackStatus.CLOSED,
61
+ ],
62
+ [CustomerFeedbackStatus.RESPONDED]: [
63
+ /** A customer who replies to a response puts it back under review. */
64
+ CustomerFeedbackStatus.UNDER_REVIEW,
65
+ CustomerFeedbackStatus.CONVERTED_TO_TICKET,
66
+ CustomerFeedbackStatus.CLOSED,
67
+ ],
68
+ [CustomerFeedbackStatus.CONVERTED_TO_TICKET]: [CustomerFeedbackStatus.CLOSED],
69
+ [CustomerFeedbackStatus.CLOSED]: [CustomerFeedbackStatus.UNDER_REVIEW],
70
+ [CustomerFeedbackStatus.DISMISSED]: [],
71
+ };
72
+ /** Statuses that still need somebody to look at them. */
73
+ export const OPEN_CUSTOMER_FEEDBACK_STATUSES = [
74
+ CustomerFeedbackStatus.NEW,
75
+ CustomerFeedbackStatus.UNDER_REVIEW,
76
+ ];
77
+ /** Where the feedback was submitted from. */
78
+ export var CustomerFeedbackChannel;
79
+ (function (CustomerFeedbackChannel) {
80
+ CustomerFeedbackChannel["MOBILE_APP"] = "MOBILE_APP";
81
+ CustomerFeedbackChannel["WEB_APP"] = "WEB_APP";
82
+ CustomerFeedbackChannel["AGENT_PORTAL"] = "AGENT_PORTAL";
83
+ CustomerFeedbackChannel["API"] = "API";
84
+ })(CustomerFeedbackChannel || (CustomerFeedbackChannel = {}));
85
+ /**
86
+ * Coarse sentiment.
87
+ *
88
+ * Derived from the feedback TYPE and rating only - never inferred from the
89
+ * message text. There is deliberately no classifier here: a wrong automated
90
+ * reading of "the guard never came" is worse than no reading at all. The field
91
+ * exists so a real classifier can be added later without a migration.
92
+ */
93
+ export var CustomerFeedbackSentiment;
94
+ (function (CustomerFeedbackSentiment) {
95
+ CustomerFeedbackSentiment["POSITIVE"] = "POSITIVE";
96
+ CustomerFeedbackSentiment["NEUTRAL"] = "NEUTRAL";
97
+ CustomerFeedbackSentiment["NEGATIVE"] = "NEGATIVE";
98
+ CustomerFeedbackSentiment["UNKNOWN"] = "UNKNOWN";
99
+ })(CustomerFeedbackSentiment || (CustomerFeedbackSentiment = {}));
100
+ /** Who wrote an entry in a feedback thread. */
101
+ export var CustomerFeedbackMessageAuthorType;
102
+ (function (CustomerFeedbackMessageAuthorType) {
103
+ CustomerFeedbackMessageAuthorType["CUSTOMER"] = "CUSTOMER";
104
+ CustomerFeedbackMessageAuthorType["REVIEWER"] = "REVIEWER";
105
+ CustomerFeedbackMessageAuthorType["SYSTEM"] = "SYSTEM";
106
+ })(CustomerFeedbackMessageAuthorType || (CustomerFeedbackMessageAuthorType = {}));
107
+ //# sourceMappingURL=support-feedback.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-feedback.enum.js","sourceRoot":"","sources":["../../../../../src/modules/support/enums/support-feedback.enum.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
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 var SupportProviderCode;
16
+ (function (SupportProviderCode) {
17
+ /** Zammad - self-hosted, the platform default. */
18
+ SupportProviderCode["ZAMMAD"] = "ZAMMAD";
19
+ /** Freshdesk - SaaS, the initial alternative. */
20
+ SupportProviderCode["FRESHDESK"] = "FRESHDESK";
21
+ /**
22
+ * No external helpdesk. Clarion is the whole system of record.
23
+ *
24
+ * A first-class choice, not a failure state: an organization can run support
25
+ * entirely inside Clarion, and a deployment that has not finished
26
+ * provisioning a helpdesk still takes tickets rather than refusing them.
27
+ */
28
+ SupportProviderCode["NONE"] = "NONE";
29
+ })(SupportProviderCode || (SupportProviderCode = {}));
30
+ /** Providers that are actually mirrored to an external helpdesk. */
31
+ export const EXTERNAL_SUPPORT_PROVIDERS = [
32
+ SupportProviderCode.ZAMMAD,
33
+ SupportProviderCode.FRESHDESK,
34
+ ];
35
+ /** The platform default when a deployment sets no provider at all. */
36
+ export const DEFAULT_SUPPORT_PROVIDER = SupportProviderCode.ZAMMAD;
37
+ /**
38
+ * What a helpdesk adapter is able to do.
39
+ *
40
+ * Published by each adapter rather than assumed, because helpdesks differ
41
+ * materially: both Zammad and Freshdesk can take a public reply, but only some
42
+ * deployments enable attachments, and a vendor without webhooks has to be
43
+ * reconciled by polling instead. The admin builds its buttons from this, so a
44
+ * capability a provider lacks is never offered to an operator as if it worked.
45
+ */
46
+ export var SupportProviderCapability;
47
+ (function (SupportProviderCapability) {
48
+ SupportProviderCapability["CREATE_TICKET"] = "CREATE_TICKET";
49
+ SupportProviderCapability["UPDATE_TICKET"] = "UPDATE_TICKET";
50
+ SupportProviderCapability["PUBLIC_REPLY"] = "PUBLIC_REPLY";
51
+ SupportProviderCapability["INTERNAL_NOTE"] = "INTERNAL_NOTE";
52
+ SupportProviderCapability["ASSIGN_TICKET"] = "ASSIGN_TICKET";
53
+ SupportProviderCapability["CHANGE_STATUS"] = "CHANGE_STATUS";
54
+ SupportProviderCapability["CLOSE_REOPEN"] = "CLOSE_REOPEN";
55
+ SupportProviderCapability["ATTACHMENTS"] = "ATTACHMENTS";
56
+ SupportProviderCapability["CONTACTS"] = "CONTACTS";
57
+ SupportProviderCapability["SEARCH"] = "SEARCH";
58
+ /** The provider can push changes back to Clarion over a webhook. */
59
+ SupportProviderCapability["WEBHOOKS"] = "WEBHOOKS";
60
+ /** A single ticket can be re-read for reconciliation. */
61
+ SupportProviderCapability["FETCH_TICKET"] = "FETCH_TICKET";
62
+ })(SupportProviderCapability || (SupportProviderCapability = {}));
63
+ //# sourceMappingURL=support-provider-code.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-provider-code.enum.js","sourceRoot":"","sources":["../../../../../src/modules/support/enums/support-provider-code.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAN,IAAY,mBAaX;AAbD,WAAY,mBAAmB;IAC3B,kDAAkD;IAClD,wCAAiB,CAAA;IACjB,iDAAiD;IACjD,8CAAuB,CAAA;IACvB;;;;;;OAMG;IACH,oCAAa,CAAA;AACjB,CAAC,EAbW,mBAAmB,KAAnB,mBAAmB,QAa9B;AAED,oEAAoE;AACpE,MAAM,CAAC,MAAM,0BAA0B,GAAmC;IACtE,mBAAmB,CAAC,MAAM;IAC1B,mBAAmB,CAAC,SAAS;CAChC,CAAC;AAEF,sEAAsE;AACtE,MAAM,CAAC,MAAM,wBAAwB,GAAwB,mBAAmB,CAAC,MAAM,CAAC;AAExF;;;;;;;;GAQG;AACH,MAAM,CAAN,IAAY,yBAeX;AAfD,WAAY,yBAAyB;IACjC,4DAA+B,CAAA;IAC/B,4DAA+B,CAAA;IAC/B,0DAA6B,CAAA;IAC7B,4DAA+B,CAAA;IAC/B,4DAA+B,CAAA;IAC/B,4DAA+B,CAAA;IAC/B,0DAA6B,CAAA;IAC7B,wDAA2B,CAAA;IAC3B,kDAAqB,CAAA;IACrB,8CAAiB,CAAA;IACjB,oEAAoE;IACpE,kDAAqB,CAAA;IACrB,yDAAyD;IACzD,0DAA6B,CAAA;AACjC,CAAC,EAfW,yBAAyB,KAAzB,yBAAyB,QAepC"}
@@ -0,0 +1,47 @@
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 var SupportRelatedEntityType;
15
+ (function (SupportRelatedEntityType) {
16
+ SupportRelatedEntityType["INCIDENT"] = "INCIDENT";
17
+ SupportRelatedEntityType["BILLING_SUBSCRIPTION"] = "BILLING_SUBSCRIPTION";
18
+ SupportRelatedEntityType["BILLING_INVOICE"] = "BILLING_INVOICE";
19
+ SupportRelatedEntityType["BILLING_PAYMENT"] = "BILLING_PAYMENT";
20
+ SupportRelatedEntityType["BILLING_PACKAGE"] = "BILLING_PACKAGE";
21
+ SupportRelatedEntityType["CHAT_CONVERSATION"] = "CHAT_CONVERSATION";
22
+ SupportRelatedEntityType["NEWSFEED_POST"] = "NEWSFEED_POST";
23
+ SupportRelatedEntityType["NEWSFEED_COMMENT"] = "NEWSFEED_COMMENT";
24
+ SupportRelatedEntityType["PARTNER_DISPATCH"] = "PARTNER_DISPATCH";
25
+ SupportRelatedEntityType["RESPONSE_UNIT"] = "RESPONSE_UNIT";
26
+ SupportRelatedEntityType["ORGANIZATION"] = "ORGANIZATION";
27
+ SupportRelatedEntityType["USER"] = "USER";
28
+ /** A screen or feature in a client application, for contextual feedback. */
29
+ SupportRelatedEntityType["APP_SCREEN"] = "APP_SCREEN";
30
+ /** Another support ticket - a duplicate, or a follow-up. */
31
+ SupportRelatedEntityType["SUPPORT_TICKET"] = "SUPPORT_TICKET";
32
+ SupportRelatedEntityType["CUSTOMER_FEEDBACK"] = "CUSTOMER_FEEDBACK";
33
+ SupportRelatedEntityType["OTHER"] = "OTHER";
34
+ })(SupportRelatedEntityType || (SupportRelatedEntityType = {}));
35
+ /**
36
+ * Related entities whose detail is fetched from another service for display.
37
+ *
38
+ * The admin ticket page enriches only these, and only for a reader who already
39
+ * passed that service's own authorization. Everything else is shown as a bare
40
+ * type and id, which is honest rather than broken.
41
+ */
42
+ export const ENRICHABLE_SUPPORT_RELATED_ENTITY_TYPES = [
43
+ SupportRelatedEntityType.INCIDENT,
44
+ SupportRelatedEntityType.BILLING_SUBSCRIPTION,
45
+ SupportRelatedEntityType.BILLING_INVOICE,
46
+ ];
47
+ //# sourceMappingURL=support-related-entity-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-related-entity-type.enum.js","sourceRoot":"","sources":["../../../../../src/modules/support/enums/support-related-entity-type.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,CAAN,IAAY,wBAmBX;AAnBD,WAAY,wBAAwB;IAChC,iDAAqB,CAAA;IACrB,yEAA6C,CAAA;IAC7C,+DAAmC,CAAA;IACnC,+DAAmC,CAAA;IACnC,+DAAmC,CAAA;IACnC,mEAAuC,CAAA;IACvC,2DAA+B,CAAA;IAC/B,iEAAqC,CAAA;IACrC,iEAAqC,CAAA;IACrC,2DAA+B,CAAA;IAC/B,yDAA6B,CAAA;IAC7B,yCAAa,CAAA;IACb,4EAA4E;IAC5E,qDAAyB,CAAA;IACzB,4DAA4D;IAC5D,6DAAiC,CAAA;IACjC,mEAAuC,CAAA;IACvC,2CAAe,CAAA;AACnB,CAAC,EAnBW,wBAAwB,KAAxB,wBAAwB,QAmBnC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uCAAuC,GAAwC;IACxF,wBAAwB,CAAC,QAAQ;IACjC,wBAAwB,CAAC,oBAAoB;IAC7C,wBAAwB,CAAC,eAAe;CAC3C,CAAC"}
@@ -0,0 +1,55 @@
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 var SupportQueueAssignmentStrategy;
10
+ (function (SupportQueueAssignmentStrategy) {
11
+ /** A supervisor assigns. The queue is a shared inbox. */
12
+ SupportQueueAssignmentStrategy["MANUAL"] = "MANUAL";
13
+ /** Round-robin across available team members. Reserved. */
14
+ SupportQueueAssignmentStrategy["ROUND_ROBIN"] = "ROUND_ROBIN";
15
+ /** To whoever holds the fewest open tickets. Reserved. */
16
+ SupportQueueAssignmentStrategy["LEAST_BUSY"] = "LEAST_BUSY";
17
+ })(SupportQueueAssignmentStrategy || (SupportQueueAssignmentStrategy = {}));
18
+ /**
19
+ * What a routing rule matches on.
20
+ *
21
+ * Rules are evaluated in priority order and the first match wins, so the
22
+ * dimensions are deliberately few and orthogonal. Anything cleverer belongs in
23
+ * a later classification service, not in a rule table an operator maintains by
24
+ * hand.
25
+ */
26
+ export var SupportRoutingMatchType;
27
+ (function (SupportRoutingMatchType) {
28
+ /** Any ticket in the organization. The catch-all rule. */
29
+ SupportRoutingMatchType["ANY"] = "ANY";
30
+ SupportRoutingMatchType["CATEGORY"] = "CATEGORY";
31
+ SupportRoutingMatchType["PRIORITY"] = "PRIORITY";
32
+ SupportRoutingMatchType["CHANNEL"] = "CHANNEL";
33
+ SupportRoutingMatchType["COUNTRY"] = "COUNTRY";
34
+ SupportRoutingMatchType["CONTROL_CENTRE"] = "CONTROL_CENTRE";
35
+ /** The client application the ticket came from, e.g. G4S or GardaWorld. */
36
+ SupportRoutingMatchType["APP_ID"] = "APP_ID";
37
+ /** The kind of Clarion record the ticket is about. */
38
+ SupportRoutingMatchType["RELATED_ENTITY_TYPE"] = "RELATED_ENTITY_TYPE";
39
+ })(SupportRoutingMatchType || (SupportRoutingMatchType = {}));
40
+ /** A support person's standing inside a team, independent of their platform role. */
41
+ export var SupportTeamMemberRole;
42
+ (function (SupportTeamMemberRole) {
43
+ /** Works tickets. */
44
+ SupportTeamMemberRole["AGENT"] = "AGENT";
45
+ /** Works tickets, assigns them, and receives SLA warnings for the team. */
46
+ SupportTeamMemberRole["SUPERVISOR"] = "SUPERVISOR";
47
+ /** Owns the team's configuration and receives breach escalations. */
48
+ SupportTeamMemberRole["MANAGER"] = "MANAGER";
49
+ })(SupportTeamMemberRole || (SupportTeamMemberRole = {}));
50
+ /** Team roles that receive SLA escalations, most junior first. */
51
+ export const SUPPORT_ESCALATION_TEAM_ROLES = [
52
+ SupportTeamMemberRole.SUPERVISOR,
53
+ SupportTeamMemberRole.MANAGER,
54
+ ];
55
+ //# sourceMappingURL=support-routing.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"support-routing.enum.js","sourceRoot":"","sources":["../../../../../src/modules/support/enums/support-routing.enum.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,8BAOX;AAPD,WAAY,8BAA8B;IACtC,yDAAyD;IACzD,mDAAiB,CAAA;IACjB,2DAA2D;IAC3D,6DAA2B,CAAA;IAC3B,0DAA0D;IAC1D,2DAAyB,CAAA;AAC7B,CAAC,EAPW,8BAA8B,KAA9B,8BAA8B,QAOzC;AAED;;;;;;;GAOG;AACH,MAAM,CAAN,IAAY,uBAYX;AAZD,WAAY,uBAAuB;IAC/B,0DAA0D;IAC1D,sCAAW,CAAA;IACX,gDAAqB,CAAA;IACrB,gDAAqB,CAAA;IACrB,8CAAmB,CAAA;IACnB,8CAAmB,CAAA;IACnB,4DAAiC,CAAA;IACjC,2EAA2E;IAC3E,4CAAiB,CAAA;IACjB,sDAAsD;IACtD,sEAA2C,CAAA;AAC/C,CAAC,EAZW,uBAAuB,KAAvB,uBAAuB,QAYlC;AAED,qFAAqF;AACrF,MAAM,CAAN,IAAY,qBAOX;AAPD,WAAY,qBAAqB;IAC7B,qBAAqB;IACrB,wCAAe,CAAA;IACf,2EAA2E;IAC3E,kDAAyB,CAAA;IACzB,qEAAqE;IACrE,4CAAmB,CAAA;AACvB,CAAC,EAPW,qBAAqB,KAArB,qBAAqB,QAOhC;AAED,kEAAkE;AAClE,MAAM,CAAC,MAAM,6BAA6B,GAAqC;IAC3E,qBAAqB,CAAC,UAAU;IAChC,qBAAqB,CAAC,OAAO;CAChC,CAAC"}