grm-shared-library 1.1.236 → 1.1.237

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 (247) hide show
  1. package/README.md +24 -0
  2. package/dist/cjs/index.js +1 -0
  3. package/dist/cjs/index.js.map +1 -1
  4. package/dist/cjs/kafka/topics.js +10 -0
  5. package/dist/cjs/kafka/topics.js.map +1 -1
  6. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-defaults.const.js +55 -0
  7. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-defaults.const.js.map +1 -0
  8. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-kafka.const.js +21 -0
  9. package/dist/cjs/modules/dispatch/constants/response-unit-dispatch-kafka.const.js.map +1 -0
  10. package/dist/cjs/modules/dispatch/dtos/dispatch-response-unit.dto.js +58 -0
  11. package/dist/cjs/modules/dispatch/dtos/dispatch-response-unit.dto.js.map +1 -0
  12. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js +230 -0
  13. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js.map +1 -0
  14. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.js +61 -0
  15. package/dist/cjs/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.js.map +1 -0
  16. package/dist/cjs/modules/dispatch/dtos/response-unit-nearby-query.dto.js +66 -0
  17. package/dist/cjs/modules/dispatch/dtos/response-unit-nearby-query.dto.js.map +1 -0
  18. package/dist/cjs/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js +41 -0
  19. package/dist/cjs/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js.map +1 -0
  20. package/dist/cjs/modules/dispatch/enums/incident-dispatch-blocker.enum.js +21 -0
  21. package/dist/cjs/modules/dispatch/enums/incident-dispatch-blocker.enum.js.map +1 -0
  22. package/dist/cjs/modules/dispatch/enums/response-capability-requirement-source.enum.js +12 -0
  23. package/dist/cjs/modules/dispatch/enums/response-capability-requirement-source.enum.js.map +1 -0
  24. package/dist/cjs/modules/dispatch/enums/response-unit-capability-match.enum.js +24 -0
  25. package/dist/cjs/modules/dispatch/enums/response-unit-capability-match.enum.js.map +1 -0
  26. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-constraint.enum.js +34 -0
  27. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-constraint.enum.js.map +1 -0
  28. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-error-code.enum.js +26 -0
  29. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-error-code.enum.js.map +1 -0
  30. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-notification-failure.enum.js +18 -0
  31. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-notification-failure.enum.js.map +1 -0
  32. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-notification-status.enum.js +16 -0
  33. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-notification-status.enum.js.map +1 -0
  34. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-status.enum.js +33 -0
  35. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-status.enum.js.map +1 -0
  36. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js +16 -0
  37. package/dist/cjs/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js.map +1 -0
  38. package/dist/cjs/modules/dispatch/enums/response-unit-distance-basis.enum.js +12 -0
  39. package/dist/cjs/modules/dispatch/enums/response-unit-distance-basis.enum.js.map +1 -0
  40. package/dist/cjs/modules/dispatch/enums/response-unit-location-freshness.enum.js +21 -0
  41. package/dist/cjs/modules/dispatch/enums/response-unit-location-freshness.enum.js.map +1 -0
  42. package/dist/cjs/modules/dispatch/enums/response-unit-location-source.enum.js +17 -0
  43. package/dist/cjs/modules/dispatch/enums/response-unit-location-source.enum.js.map +1 -0
  44. package/dist/cjs/modules/dispatch/enums/response-unit-recommendation-reason.enum.js +25 -0
  45. package/dist/cjs/modules/dispatch/enums/response-unit-recommendation-reason.enum.js.map +1 -0
  46. package/dist/cjs/modules/dispatch/enums/response-unit-recommendation-status.enum.js +23 -0
  47. package/dist/cjs/modules/dispatch/enums/response-unit-recommendation-status.enum.js.map +1 -0
  48. package/dist/cjs/modules/dispatch/index.js +53 -0
  49. package/dist/cjs/modules/dispatch/index.js.map +1 -0
  50. package/dist/cjs/modules/dispatch/interfaces/incident-response-unit-dispatch.js +3 -0
  51. package/dist/cjs/modules/dispatch/interfaces/incident-response-unit-dispatch.js.map +1 -0
  52. package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch-events.js +3 -0
  53. package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch-events.js.map +1 -0
  54. package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch-profile.js +3 -0
  55. package/dist/cjs/modules/dispatch/interfaces/response-unit-dispatch-profile.js.map +1 -0
  56. package/dist/cjs/modules/dispatch/interfaces/response-unit-proximity.js +3 -0
  57. package/dist/cjs/modules/dispatch/interfaces/response-unit-proximity.js.map +1 -0
  58. package/dist/cjs/modules/dispatch/interfaces/response-unit-recommendation.js +3 -0
  59. package/dist/cjs/modules/dispatch/interfaces/response-unit-recommendation.js.map +1 -0
  60. package/dist/cjs/modules/dispatch/utils/dispatch-geo.util.js +44 -0
  61. package/dist/cjs/modules/dispatch/utils/dispatch-geo.util.js.map +1 -0
  62. package/dist/cjs/modules/dispatch/utils/incident-dispatchability.util.js +42 -0
  63. package/dist/cjs/modules/dispatch/utils/incident-dispatchability.util.js.map +1 -0
  64. package/dist/cjs/modules/dispatch/utils/response-capability-match.util.js +44 -0
  65. package/dist/cjs/modules/dispatch/utils/response-capability-match.util.js.map +1 -0
  66. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-event.util.js +19 -0
  67. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-event.util.js.map +1 -0
  68. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-status.util.js +49 -0
  69. package/dist/cjs/modules/dispatch/utils/response-unit-dispatch-status.util.js.map +1 -0
  70. package/dist/cjs/modules/incident/dtos/category/create-incident-category.dto.js +9 -0
  71. package/dist/cjs/modules/incident/dtos/category/create-incident-category.dto.js.map +1 -1
  72. package/dist/cjs/modules/incident/dtos/type/create-incident-type.dto.js +9 -0
  73. package/dist/cjs/modules/incident/dtos/type/create-incident-type.dto.js.map +1 -1
  74. package/dist/cjs/modules/incident/enums/incident-actions.enum.js +4 -0
  75. package/dist/cjs/modules/incident/enums/incident-actions.enum.js.map +1 -1
  76. package/dist/cjs/modules/permission/data/permissions.data.js +8 -0
  77. package/dist/cjs/modules/permission/data/permissions.data.js.map +1 -1
  78. package/dist/cjs/modules/permission/enums/permission-actions.enum.js +13 -0
  79. package/dist/cjs/modules/permission/enums/permission-actions.enum.js.map +1 -1
  80. package/dist/cjs/modules/permission/enums/permissions-module.enum.js +1 -0
  81. package/dist/cjs/modules/permission/enums/permissions-module.enum.js.map +1 -1
  82. package/dist/cjs/modules/response-unit/dtos/response-unit/base-response-unit.dto.js +9 -0
  83. package/dist/cjs/modules/response-unit/dtos/response-unit/base-response-unit.dto.js.map +1 -1
  84. package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js +29 -0
  85. package/dist/cjs/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
  86. package/dist/cjs/modules/response-unit/enums/response-unit/response-unit-availability.enum.js +27 -0
  87. package/dist/cjs/modules/response-unit/enums/response-unit/response-unit-availability.enum.js.map +1 -0
  88. package/dist/cjs/modules/response-unit/index.js +5 -0
  89. package/dist/cjs/modules/response-unit/index.js.map +1 -1
  90. package/dist/cjs/modules/response-unit/utils/response-capability.util.js +74 -0
  91. package/dist/cjs/modules/response-unit/utils/response-capability.util.js.map +1 -0
  92. package/dist/cjs/modules/response-unit/utils/response-unit-availability.util.js +46 -0
  93. package/dist/cjs/modules/response-unit/utils/response-unit-availability.util.js.map +1 -0
  94. package/dist/cjs/modules/role/data/roles.data.js +24 -0
  95. package/dist/cjs/modules/role/data/roles.data.js.map +1 -1
  96. package/dist/cjs/modules/sms/constants/sms-templates.config.js +18 -0
  97. package/dist/cjs/modules/sms/constants/sms-templates.config.js.map +1 -1
  98. package/dist/cjs/modules/sms/enums/sms-template.enum.js +1 -0
  99. package/dist/cjs/modules/sms/enums/sms-template.enum.js.map +1 -1
  100. package/dist/esm/index.js +1 -0
  101. package/dist/esm/index.js.map +1 -1
  102. package/dist/esm/kafka/topics.js +10 -0
  103. package/dist/esm/kafka/topics.js.map +1 -1
  104. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-defaults.const.js +52 -0
  105. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-defaults.const.js.map +1 -0
  106. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-kafka.const.js +18 -0
  107. package/dist/esm/modules/dispatch/constants/response-unit-dispatch-kafka.const.js.map +1 -0
  108. package/dist/esm/modules/dispatch/dtos/dispatch-response-unit.dto.js +54 -0
  109. package/dist/esm/modules/dispatch/dtos/dispatch-response-unit.dto.js.map +1 -0
  110. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js +223 -0
  111. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-notification.dto.js.map +1 -0
  112. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.js +57 -0
  113. package/dist/esm/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.js.map +1 -0
  114. package/dist/esm/modules/dispatch/dtos/response-unit-nearby-query.dto.js +62 -0
  115. package/dist/esm/modules/dispatch/dtos/response-unit-nearby-query.dto.js.map +1 -0
  116. package/dist/esm/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js +37 -0
  117. package/dist/esm/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.js.map +1 -0
  118. package/dist/esm/modules/dispatch/enums/incident-dispatch-blocker.enum.js +18 -0
  119. package/dist/esm/modules/dispatch/enums/incident-dispatch-blocker.enum.js.map +1 -0
  120. package/dist/esm/modules/dispatch/enums/response-capability-requirement-source.enum.js +9 -0
  121. package/dist/esm/modules/dispatch/enums/response-capability-requirement-source.enum.js.map +1 -0
  122. package/dist/esm/modules/dispatch/enums/response-unit-capability-match.enum.js +21 -0
  123. package/dist/esm/modules/dispatch/enums/response-unit-capability-match.enum.js.map +1 -0
  124. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-constraint.enum.js +31 -0
  125. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-constraint.enum.js.map +1 -0
  126. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-error-code.enum.js +23 -0
  127. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-error-code.enum.js.map +1 -0
  128. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-notification-failure.enum.js +15 -0
  129. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-notification-failure.enum.js.map +1 -0
  130. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-notification-status.enum.js +13 -0
  131. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-notification-status.enum.js.map +1 -0
  132. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-status.enum.js +30 -0
  133. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-status.enum.js.map +1 -0
  134. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js +13 -0
  135. package/dist/esm/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.js.map +1 -0
  136. package/dist/esm/modules/dispatch/enums/response-unit-distance-basis.enum.js +9 -0
  137. package/dist/esm/modules/dispatch/enums/response-unit-distance-basis.enum.js.map +1 -0
  138. package/dist/esm/modules/dispatch/enums/response-unit-location-freshness.enum.js +18 -0
  139. package/dist/esm/modules/dispatch/enums/response-unit-location-freshness.enum.js.map +1 -0
  140. package/dist/esm/modules/dispatch/enums/response-unit-location-source.enum.js +14 -0
  141. package/dist/esm/modules/dispatch/enums/response-unit-location-source.enum.js.map +1 -0
  142. package/dist/esm/modules/dispatch/enums/response-unit-recommendation-reason.enum.js +22 -0
  143. package/dist/esm/modules/dispatch/enums/response-unit-recommendation-reason.enum.js.map +1 -0
  144. package/dist/esm/modules/dispatch/enums/response-unit-recommendation-status.enum.js +20 -0
  145. package/dist/esm/modules/dispatch/enums/response-unit-recommendation-status.enum.js.map +1 -0
  146. package/dist/esm/modules/dispatch/index.js +37 -0
  147. package/dist/esm/modules/dispatch/index.js.map +1 -0
  148. package/dist/esm/modules/dispatch/interfaces/incident-response-unit-dispatch.js +2 -0
  149. package/dist/esm/modules/dispatch/interfaces/incident-response-unit-dispatch.js.map +1 -0
  150. package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch-events.js +2 -0
  151. package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch-events.js.map +1 -0
  152. package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch-profile.js +2 -0
  153. package/dist/esm/modules/dispatch/interfaces/response-unit-dispatch-profile.js.map +1 -0
  154. package/dist/esm/modules/dispatch/interfaces/response-unit-proximity.js +2 -0
  155. package/dist/esm/modules/dispatch/interfaces/response-unit-proximity.js.map +1 -0
  156. package/dist/esm/modules/dispatch/interfaces/response-unit-recommendation.js +2 -0
  157. package/dist/esm/modules/dispatch/interfaces/response-unit-recommendation.js.map +1 -0
  158. package/dist/esm/modules/dispatch/utils/dispatch-geo.util.js +39 -0
  159. package/dist/esm/modules/dispatch/utils/dispatch-geo.util.js.map +1 -0
  160. package/dist/esm/modules/dispatch/utils/incident-dispatchability.util.js +37 -0
  161. package/dist/esm/modules/dispatch/utils/incident-dispatchability.util.js.map +1 -0
  162. package/dist/esm/modules/dispatch/utils/response-capability-match.util.js +40 -0
  163. package/dist/esm/modules/dispatch/utils/response-capability-match.util.js.map +1 -0
  164. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-event.util.js +15 -0
  165. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-event.util.js.map +1 -0
  166. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-status.util.js +42 -0
  167. package/dist/esm/modules/dispatch/utils/response-unit-dispatch-status.util.js.map +1 -0
  168. package/dist/esm/modules/incident/dtos/category/create-incident-category.dto.js +10 -1
  169. package/dist/esm/modules/incident/dtos/category/create-incident-category.dto.js.map +1 -1
  170. package/dist/esm/modules/incident/dtos/type/create-incident-type.dto.js +10 -1
  171. package/dist/esm/modules/incident/dtos/type/create-incident-type.dto.js.map +1 -1
  172. package/dist/esm/modules/incident/enums/incident-actions.enum.js +4 -0
  173. package/dist/esm/modules/incident/enums/incident-actions.enum.js.map +1 -1
  174. package/dist/esm/modules/permission/data/permissions.data.js +8 -0
  175. package/dist/esm/modules/permission/data/permissions.data.js.map +1 -1
  176. package/dist/esm/modules/permission/enums/permission-actions.enum.js +13 -0
  177. package/dist/esm/modules/permission/enums/permission-actions.enum.js.map +1 -1
  178. package/dist/esm/modules/permission/enums/permissions-module.enum.js +1 -0
  179. package/dist/esm/modules/permission/enums/permissions-module.enum.js.map +1 -1
  180. package/dist/esm/modules/response-unit/dtos/response-unit/base-response-unit.dto.js +10 -1
  181. package/dist/esm/modules/response-unit/dtos/response-unit/base-response-unit.dto.js.map +1 -1
  182. package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js +26 -0
  183. package/dist/esm/modules/response-unit/enums/response-unit/response-capability.enum.js.map +1 -0
  184. package/dist/esm/modules/response-unit/enums/response-unit/response-unit-availability.enum.js +24 -0
  185. package/dist/esm/modules/response-unit/enums/response-unit/response-unit-availability.enum.js.map +1 -0
  186. package/dist/esm/modules/response-unit/index.js +5 -0
  187. package/dist/esm/modules/response-unit/index.js.map +1 -1
  188. package/dist/esm/modules/response-unit/utils/response-capability.util.js +68 -0
  189. package/dist/esm/modules/response-unit/utils/response-capability.util.js.map +1 -0
  190. package/dist/esm/modules/response-unit/utils/response-unit-availability.util.js +42 -0
  191. package/dist/esm/modules/response-unit/utils/response-unit-availability.util.js.map +1 -0
  192. package/dist/esm/modules/role/data/roles.data.js +24 -0
  193. package/dist/esm/modules/role/data/roles.data.js.map +1 -1
  194. package/dist/esm/modules/sms/constants/sms-templates.config.js +18 -0
  195. package/dist/esm/modules/sms/constants/sms-templates.config.js.map +1 -1
  196. package/dist/esm/modules/sms/enums/sms-template.enum.js +1 -0
  197. package/dist/esm/modules/sms/enums/sms-template.enum.js.map +1 -1
  198. package/dist/types/index.d.ts +1 -0
  199. package/dist/types/kafka/topics.d.ts +4 -0
  200. package/dist/types/modules/dispatch/constants/response-unit-dispatch-defaults.const.d.ts +43 -0
  201. package/dist/types/modules/dispatch/constants/response-unit-dispatch-kafka.const.d.ts +16 -0
  202. package/dist/types/modules/dispatch/dtos/dispatch-response-unit.dto.d.ts +20 -0
  203. package/dist/types/modules/dispatch/dtos/response-unit-dispatch-notification.dto.d.ts +47 -0
  204. package/dist/types/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.d.ts +13 -0
  205. package/dist/types/modules/dispatch/dtos/response-unit-nearby-query.dto.d.ts +15 -0
  206. package/dist/types/modules/dispatch/dtos/update-response-unit-dispatch-status.dto.d.ts +9 -0
  207. package/dist/types/modules/dispatch/enums/incident-dispatch-blocker.enum.d.ts +16 -0
  208. package/dist/types/modules/dispatch/enums/response-capability-requirement-source.enum.d.ts +7 -0
  209. package/dist/types/modules/dispatch/enums/response-unit-capability-match.enum.d.ts +19 -0
  210. package/dist/types/modules/dispatch/enums/response-unit-dispatch-constraint.enum.d.ts +27 -0
  211. package/dist/types/modules/dispatch/enums/response-unit-dispatch-error-code.enum.d.ts +21 -0
  212. package/dist/types/modules/dispatch/enums/response-unit-dispatch-notification-failure.enum.d.ts +13 -0
  213. package/dist/types/modules/dispatch/enums/response-unit-dispatch-notification-status.enum.d.ts +11 -0
  214. package/dist/types/modules/dispatch/enums/response-unit-dispatch-status.enum.d.ts +28 -0
  215. package/dist/types/modules/dispatch/enums/response-unit-dispatch-transition-source.enum.d.ts +11 -0
  216. package/dist/types/modules/dispatch/enums/response-unit-distance-basis.enum.d.ts +7 -0
  217. package/dist/types/modules/dispatch/enums/response-unit-location-freshness.enum.d.ts +16 -0
  218. package/dist/types/modules/dispatch/enums/response-unit-location-source.enum.d.ts +12 -0
  219. package/dist/types/modules/dispatch/enums/response-unit-recommendation-reason.enum.d.ts +20 -0
  220. package/dist/types/modules/dispatch/enums/response-unit-recommendation-status.enum.d.ts +18 -0
  221. package/dist/types/modules/dispatch/index.d.ts +31 -0
  222. package/dist/types/modules/dispatch/interfaces/incident-response-unit-dispatch.d.ts +121 -0
  223. package/dist/types/modules/dispatch/interfaces/response-unit-dispatch-events.d.ts +103 -0
  224. package/dist/types/modules/dispatch/interfaces/response-unit-dispatch-profile.d.ts +52 -0
  225. package/dist/types/modules/dispatch/interfaces/response-unit-proximity.d.ts +45 -0
  226. package/dist/types/modules/dispatch/interfaces/response-unit-recommendation.d.ts +130 -0
  227. package/dist/types/modules/dispatch/utils/dispatch-geo.util.d.ts +16 -0
  228. package/dist/types/modules/dispatch/utils/incident-dispatchability.util.d.ts +18 -0
  229. package/dist/types/modules/dispatch/utils/response-capability-match.util.d.ts +26 -0
  230. package/dist/types/modules/dispatch/utils/response-unit-dispatch-event.util.d.ts +9 -0
  231. package/dist/types/modules/dispatch/utils/response-unit-dispatch-status.util.d.ts +16 -0
  232. package/dist/types/modules/incident/dtos/category/create-incident-category.dto.d.ts +6 -0
  233. package/dist/types/modules/incident/dtos/type/create-incident-type.dto.d.ts +6 -0
  234. package/dist/types/modules/incident/enums/incident-actions.enum.d.ts +4 -0
  235. package/dist/types/modules/incident/intefaces/incident-category.d.ts +6 -0
  236. package/dist/types/modules/incident/intefaces/incident-type.d.ts +6 -0
  237. package/dist/types/modules/permission/enums/permission-actions.enum.d.ts +3 -0
  238. package/dist/types/modules/permission/enums/permissions-module.enum.d.ts +1 -0
  239. package/dist/types/modules/response-unit/dtos/response-unit/base-response-unit.dto.d.ts +7 -0
  240. package/dist/types/modules/response-unit/enums/response-unit/response-capability.enum.d.ts +24 -0
  241. package/dist/types/modules/response-unit/enums/response-unit/response-unit-availability.enum.d.ts +22 -0
  242. package/dist/types/modules/response-unit/index.d.ts +4 -0
  243. package/dist/types/modules/response-unit/interfaces/response-unit/response-unit.d.ts +3 -0
  244. package/dist/types/modules/response-unit/utils/response-capability.util.d.ts +31 -0
  245. package/dist/types/modules/response-unit/utils/response-unit-availability.util.d.ts +21 -0
  246. package/dist/types/modules/sms/enums/sms-template.enum.d.ts +1 -0
  247. package/package.json +1 -1
package/README.md CHANGED
@@ -195,6 +195,30 @@ Values that end up inside email CSS or headers are validated as such: colours ar
195
195
  `#RRGGBB` only, logos are `https` only, and a sender display name may not contain a
196
196
  line break. `notification-sender.spec.ts` pins each of those.
197
197
 
198
+ ## Response-unit dispatch (`modules/dispatch`)
199
+
200
+ The contracts of response-unit recommendation and dispatch (design: clarion-incident
201
+ `docs/RESPONSE_UNIT_DISPATCH.md`).
202
+
203
+ - **Capabilities** (`modules/response-unit`): `ResponseCapability` and
204
+ `effectiveResponseCapabilities` - configured on the unit, else implied by its type (an
205
+ ambulance is MEDICAL_RESPONSE). `resolveResponseUnitAvailability` reads the manual status.
206
+ - **Recommendation**: `ResponseUnitRecommendation` / `ResponseUnitCandidate` - facts and
207
+ reasons, never scores; `matchResponseCapabilities`, `resolveResponseCapabilityRequirement`
208
+ (type's list, else category's), `resolveIncidentDispatchBlockers`.
209
+ - **Dispatch**: `IncidentResponseUnitDispatch`, `DispatchResponseUnitDto`,
210
+ `UpdateResponseUnitDispatchStatusDto`, the state machine (`RESPONSE_UNIT_DISPATCH_TRANSITIONS`,
211
+ `ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES` - which MUST equal the statuses in clarion-incident's
212
+ `UQ_ru_dispatch_active_unit` index), `ResponseUnitDispatchErrorCode`.
213
+ - **Cross-service reads**: `ResponseUnitDispatchProfile` (clarion-organization's catalogue),
214
+ `ResponseUnitNearbyResult` (clarion-response-tracking's GEO search).
215
+ - **Events**: `RESPONSE_UNIT_DISPATCH_KAFKA_TOPICS` - created / status-changed (identifiers
216
+ only), notification-requested (the one message with a phone number) and notification-result;
217
+ class DTOs for the two notification events so consumers can validate with `whitelist: true`.
218
+ - **Permissions**: the `Response Unit Dispatch` module - `read|create|update:response-unit-dispatch`
219
+ (never `update:incident`, which every app user holds).
220
+ - **SMS**: the `RESPONSE_UNIT_DISPATCH` template.
221
+
198
222
  ## Roles and permissions
199
223
 
200
224
  This package is the authority on both. clarion-authentication seeds them into its
package/dist/cjs/index.js CHANGED
@@ -45,6 +45,7 @@ __exportStar(require("./modules/alert-intake/index"), exports);
45
45
  __exportStar(require("./modules/safety/index"), exports);
46
46
  __exportStar(require("./modules/billing/index"), exports);
47
47
  __exportStar(require("./modules/newsfeed/index"), exports);
48
+ __exportStar(require("./modules/dispatch/index"), exports);
48
49
  // Interfaces
49
50
  __exportStar(require("./interfaces/server-message"), exports);
50
51
  __exportStar(require("./interfaces/i-request-with-user"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,wDAAsC;AACtC,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,+DAA6C;AAC7C,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AAEzC,aAAa;AACb,8DAA4C;AAC5C,mEAAiD;AACjD,8DAA4C;AAC5C,2DAAyC;AACzC,0DAAwC;AAExC,YAAY;AACZ,2DAAyC;AAEzC,QAAQ;AACR,gDAA8B;AAE9B,YAAY;AACZ,+DAA6C;AAC7C,wFAAsE;AAEtE,aAAa;AACb,qDAAmC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,UAAU;AACV,uDAAqC;AACrC,+DAA6C;AAC7C,yDAAuC;AACvC,6DAA2C;AAC3C,uDAAqC;AACrC,uDAAqC;AACrC,iEAA+C;AAC/C,wDAAsC;AACtC,gEAA8C;AAC9C,2DAAyC;AACzC,2DAAyC;AACzC,sDAAoC;AACpC,sDAAoC;AACpC,sDAAoC;AACpC,yDAAuC;AACvC,mEAAiD;AACjD,+DAA6C;AAC7C,uDAAqC;AACrC,0DAAwC;AACxC,wDAAsC;AACtC,2DAAyC;AACzC,8DAA4C;AAC5C,iEAA+C;AAC/C,8DAA4C;AAC5C,0DAAwC;AACxC,0DAAwC;AACxC,+DAA6C;AAC7C,yDAAuC;AACvC,0DAAwC;AACxC,2DAAyC;AACzC,2DAAyC;AAEzC,aAAa;AACb,8DAA4C;AAC5C,mEAAiD;AACjD,8DAA4C;AAC5C,2DAAyC;AACzC,0DAAwC;AAExC,YAAY;AACZ,2DAAyC;AAEzC,QAAQ;AACR,gDAA8B;AAE9B,YAAY;AACZ,+DAA6C;AAC7C,wFAAsE;AAEtE,aAAa;AACb,qDAAmC"}
@@ -35,6 +35,16 @@ exports.KAFKA_TOPICS = {
35
35
  INCIDENT_ASSIGNED: 'incident.assigned',
36
36
  INCIDENT_ASSIGNMENT_CREATED: 'incident.assignment.created',
37
37
  INCIDENT_RESPONSE_UNIT_ASSIGNMENT_CREATED: 'incident.response.unit.assignment.created',
38
+ // Response-unit dispatch (producer: clarion-incident) - versioned, keyed by
39
+ // incident id. CREATED and STATUS_CHANGED are the domain events (identifiers
40
+ // only); NOTIFICATION_REQUESTED is a command to clarion-notification and the
41
+ // only one carrying a phone number. See RESPONSE_UNIT_DISPATCH_KAFKA_TOPICS.
42
+ INCIDENT_RESPONSE_UNIT_DISPATCH_CREATED: 'incident.response-unit-dispatch.created.v1',
43
+ INCIDENT_RESPONSE_UNIT_DISPATCH_STATUS_CHANGED: 'incident.response-unit-dispatch.status-changed.v1',
44
+ INCIDENT_RESPONSE_UNIT_DISPATCH_NOTIFICATION_REQUESTED: 'incident.response-unit-dispatch.notification-requested.v1',
45
+ // What became of a dispatch message (producer: clarion-notification;
46
+ // consumer: clarion-incident).
47
+ RESPONSE_UNIT_DISPATCH_NOTIFICATION_RESULT: 'notification.response-unit-dispatch.notification-result.v1',
38
48
  // Chat
39
49
  CHAT_MESSAGE_CREATED: 'chat.message.created',
40
50
  CHAT_CONVERSATION_CREATED: 'chat.conversation.created',
@@ -1 +1 @@
1
- {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../src/kafka/topics.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"topics.js","sourceRoot":"","sources":["../../../src/kafka/topics.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESPONSE_UNIT_NEARBY_LIMITS = exports.RESPONSE_UNIT_RECOMMENDATION_DEFAULTS = exports.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS = exports.TERMINAL_RESPONSE_UNIT_DISPATCH_STATUSES = exports.ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES = void 0;
4
+ const response_unit_dispatch_status_enum_1 = require("../enums/response-unit-dispatch-status.enum");
5
+ /**
6
+ * The statuses in which a unit is out on a job. Exactly the set the partial
7
+ * unique index in clarion-incident covers - a unit may hold one of these at a
8
+ * time, platform-wide. Change one, change the other (and write a migration).
9
+ */
10
+ exports.ACTIVE_RESPONSE_UNIT_DISPATCH_STATUSES = [
11
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.DISPATCHED,
12
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.ACKNOWLEDGED,
13
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.EN_ROUTE,
14
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.ON_SCENE,
15
+ ];
16
+ exports.TERMINAL_RESPONSE_UNIT_DISPATCH_STATUSES = [
17
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.COMPLETED,
18
+ response_unit_dispatch_status_enum_1.ResponseUnitDispatchStatus.CANCELLED,
19
+ ];
20
+ /** Free-text lengths, shared by the DTOs and the columns that store them. */
21
+ exports.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS = {
22
+ overrideReason: 500,
23
+ notes: 1000,
24
+ statusReason: 500,
25
+ /** The gateway drops a longer Idempotency-Key, so nothing longer ever arrives. */
26
+ idempotencyKey: 200,
27
+ /** The incident description as quoted in a dispatch message. */
28
+ messageSummary: 160,
29
+ messageAddress: 160,
30
+ };
31
+ /**
32
+ * Defaults for the recommendation. Each is overridable by the consuming
33
+ * service's configuration; these are what an unconfigured deployment does.
34
+ */
35
+ exports.RESPONSE_UNIT_RECOMMENDATION_DEFAULTS = {
36
+ /** Recommendable units shown after the recommended one. */
37
+ maxAlternatives: 5,
38
+ /** The "every other unit" list for manual selection. */
39
+ maxOtherUnits: 50,
40
+ /** How far the live GEO search looks. Country-scale: a control room covers a region. */
41
+ searchRadiusMetres: 200000,
42
+ /** How many live units the GEO search returns, nearest first. */
43
+ liveCandidateLimit: 100,
44
+ /** How many top candidates get a road travel time, when routing is enabled. */
45
+ travelTimeCandidates: 3,
46
+ /** Units in one recommendation's catalogue before it is truncated. */
47
+ maxCatalogueUnits: 2000,
48
+ };
49
+ /** Bounds a nearby query accepts. */
50
+ exports.RESPONSE_UNIT_NEARBY_LIMITS = {
51
+ minRadiusMetres: 100,
52
+ maxRadiusMetres: 2000000,
53
+ maxLimit: 500,
54
+ };
55
+ //# sourceMappingURL=response-unit-dispatch-defaults.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-unit-dispatch-defaults.const.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/constants/response-unit-dispatch-defaults.const.ts"],"names":[],"mappings":";;;AAAA,oGAAyF;AAEzF;;;;GAIG;AACU,QAAA,sCAAsC,GAA0C;IACzF,+DAA0B,CAAC,UAAU;IACrC,+DAA0B,CAAC,YAAY;IACvC,+DAA0B,CAAC,QAAQ;IACnC,+DAA0B,CAAC,QAAQ;CACtC,CAAC;AAEW,QAAA,wCAAwC,GAA0C;IAC3F,+DAA0B,CAAC,SAAS;IACpC,+DAA0B,CAAC,SAAS;CACvC,CAAC;AAEF,6EAA6E;AAChE,QAAA,mCAAmC,GAAG;IAC/C,cAAc,EAAE,GAAG;IACnB,KAAK,EAAE,IAAI;IACX,YAAY,EAAE,GAAG;IACjB,kFAAkF;IAClF,cAAc,EAAE,GAAG;IACnB,gEAAgE;IAChE,cAAc,EAAE,GAAG;IACnB,cAAc,EAAE,GAAG;CACb,CAAC;AAEX;;;GAGG;AACU,QAAA,qCAAqC,GAAG;IACjD,2DAA2D;IAC3D,eAAe,EAAE,CAAC;IAClB,wDAAwD;IACxD,aAAa,EAAE,EAAE;IACjB,wFAAwF;IACxF,kBAAkB,EAAE,MAAO;IAC3B,iEAAiE;IACjE,kBAAkB,EAAE,GAAG;IACvB,+EAA+E;IAC/E,oBAAoB,EAAE,CAAC;IACvB,sEAAsE;IACtE,iBAAiB,EAAE,IAAI;CACjB,CAAC;AAEX,qCAAqC;AACxB,QAAA,2BAA2B,GAAG;IACvC,eAAe,EAAE,GAAG;IACpB,eAAe,EAAE,OAAS;IAC1B,QAAQ,EAAE,GAAG;CACP,CAAC"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RESPONSE_UNIT_DISPATCH_SCHEMA_VERSION = exports.RESPONSE_UNIT_DISPATCH_KAFKA_TOPICS = void 0;
4
+ const topics_1 = require("../../../kafka/topics");
5
+ /**
6
+ * Grouped view of the response-unit dispatch topics. The strings live in
7
+ * {@link KAFKA_TOPICS} with every other domain's; this only references them.
8
+ *
9
+ * Producer clarion-incident (CREATED, STATUS_CHANGED, NOTIFICATION_REQUESTED),
10
+ * keyed by incident id so one incident's dispatch history stays in order.
11
+ * Producer clarion-notification (NOTIFICATION_RESULT), keyed by incident id.
12
+ */
13
+ exports.RESPONSE_UNIT_DISPATCH_KAFKA_TOPICS = {
14
+ CREATED: topics_1.KAFKA_TOPICS.INCIDENT_RESPONSE_UNIT_DISPATCH_CREATED,
15
+ STATUS_CHANGED: topics_1.KAFKA_TOPICS.INCIDENT_RESPONSE_UNIT_DISPATCH_STATUS_CHANGED,
16
+ NOTIFICATION_REQUESTED: topics_1.KAFKA_TOPICS.INCIDENT_RESPONSE_UNIT_DISPATCH_NOTIFICATION_REQUESTED,
17
+ NOTIFICATION_RESULT: topics_1.KAFKA_TOPICS.RESPONSE_UNIT_DISPATCH_NOTIFICATION_RESULT,
18
+ };
19
+ /** Current schema version of every response-unit dispatch event. */
20
+ exports.RESPONSE_UNIT_DISPATCH_SCHEMA_VERSION = 1;
21
+ //# sourceMappingURL=response-unit-dispatch-kafka.const.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-unit-dispatch-kafka.const.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/constants/response-unit-dispatch-kafka.const.ts"],"names":[],"mappings":";;;AAAA,kDAAqD;AAErD;;;;;;;GAOG;AACU,QAAA,mCAAmC,GAAG;IAC/C,OAAO,EAAE,qBAAY,CAAC,uCAAuC;IAC7D,cAAc,EAAE,qBAAY,CAAC,8CAA8C;IAC3E,sBAAsB,EAAE,qBAAY,CAAC,sDAAsD;IAC3F,mBAAmB,EAAE,qBAAY,CAAC,0CAA0C;CACtE,CAAC;AAEX,oEAAoE;AACvD,QAAA,qCAAqC,GAAG,CAAU,CAAC"}
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DispatchResponseUnitDto = void 0;
13
+ const swagger_1 = require("@nestjs/swagger");
14
+ const class_transformer_1 = require("class-transformer");
15
+ const class_validator_1 = require("class-validator");
16
+ const response_unit_dispatch_defaults_const_1 = require("../constants/response-unit-dispatch-defaults.const");
17
+ /**
18
+ * `POST /incidents/:id/response-unit-dispatches` - send this unit.
19
+ *
20
+ * Only the unit is a decision. Organization, control centre and incident come
21
+ * from the server's own records, never from this body. Idempotent on the
22
+ * `Idempotency-Key` header: a repeated request returns the dispatch the first
23
+ * one created.
24
+ */
25
+ class DispatchResponseUnitDto {
26
+ }
27
+ exports.DispatchResponseUnitDto = DispatchResponseUnitDto;
28
+ __decorate([
29
+ (0, swagger_1.ApiProperty)({ example: 42, description: 'The response unit to send.' }),
30
+ (0, class_transformer_1.Type)(() => Number),
31
+ (0, class_validator_1.IsInt)(),
32
+ (0, class_validator_1.IsPositive)(),
33
+ __metadata("design:type", Number)
34
+ ], DispatchResponseUnitDto.prototype, "responseUnitId", void 0);
35
+ __decorate([
36
+ (0, swagger_1.ApiPropertyOptional)({ example: 42, nullable: true, description: 'The unit shown as recommended, if any.' }),
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_validator_1.ValidateIf)((_, value) => value !== null),
39
+ (0, class_transformer_1.Type)(() => Number),
40
+ (0, class_validator_1.IsInt)(),
41
+ (0, class_validator_1.IsPositive)(),
42
+ __metadata("design:type", Object)
43
+ ], DispatchResponseUnitDto.prototype, "recommendedResponseUnitId", void 0);
44
+ __decorate([
45
+ (0, swagger_1.ApiPropertyOptional)({ maxLength: response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS.overrideReason }),
46
+ (0, class_validator_1.IsOptional)(),
47
+ (0, class_validator_1.IsString)(),
48
+ (0, class_validator_1.MaxLength)(response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS.overrideReason),
49
+ __metadata("design:type", String)
50
+ ], DispatchResponseUnitDto.prototype, "overrideReason", void 0);
51
+ __decorate([
52
+ (0, swagger_1.ApiPropertyOptional)({ maxLength: response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS.notes }),
53
+ (0, class_validator_1.IsOptional)(),
54
+ (0, class_validator_1.IsString)(),
55
+ (0, class_validator_1.MaxLength)(response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_DISPATCH_FIELD_LIMITS.notes),
56
+ __metadata("design:type", String)
57
+ ], DispatchResponseUnitDto.prototype, "notes", void 0);
58
+ //# sourceMappingURL=dispatch-response-unit.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dispatch-response-unit.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/dtos/dispatch-response-unit.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmE;AACnE,yDAAyC;AACzC,qDAAiG;AACjG,8GAAyG;AAEzG;;;;;;;GAOG;AACH,MAAa,uBAAuB;CAgCnC;AAhCD,0DAgCC;AA3BG;IAJC,IAAA,qBAAW,EAAC,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;IACvE,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;+DACW;AAaxB;IANC,IAAA,6BAAmB,EAAC,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;IAC3G,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAU,EAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC;IACxC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;0EAC6B;AAO1C;IAJC,IAAA,6BAAmB,EAAC,EAAE,SAAS,EAAE,2EAAmC,CAAC,cAAc,EAAE,CAAC;IACtF,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,2EAAmC,CAAC,cAAc,CAAC;;+DACtC;AAMxB;IAJC,IAAA,6BAAmB,EAAC,EAAE,SAAS,EAAE,2EAAmC,CAAC,KAAK,EAAE,CAAC;IAC7E,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;IACV,IAAA,2BAAS,EAAC,2EAAmC,CAAC,KAAK,CAAC;;sDACtC"}
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResponseUnitDispatchNotificationResultDto = exports.ResponseUnitDispatchNotificationRequestedDto = exports.ResponseUnitDispatchRecipientDto = exports.ResponseUnitDispatchMessageIncidentDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const response_unit_dispatch_notification_failure_enum_1 = require("../enums/response-unit-dispatch-notification-failure.enum");
16
+ const response_unit_dispatch_notification_status_enum_1 = require("../enums/response-unit-dispatch-notification-status.enum");
17
+ /*
18
+ * Class forms of the two notification events, for consumers that validate a
19
+ * Kafka payload with `ValidationPipe({ whitelist: true })`. Declared here, once,
20
+ * next to the interfaces they implement - a consumer-local copy would silently
21
+ * strip any field added to the event later.
22
+ */
23
+ class ResponseUnitDispatchMessageIncidentDto {
24
+ }
25
+ exports.ResponseUnitDispatchMessageIncidentDto = ResponseUnitDispatchMessageIncidentDto;
26
+ __decorate([
27
+ (0, class_validator_1.IsString)(),
28
+ (0, class_validator_1.IsNotEmpty)(),
29
+ (0, class_validator_1.MaxLength)(32),
30
+ __metadata("design:type", String)
31
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "reference", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsString)(),
35
+ (0, class_validator_1.MaxLength)(100),
36
+ __metadata("design:type", Object)
37
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "typeName", void 0);
38
+ __decorate([
39
+ (0, class_validator_1.IsOptional)(),
40
+ (0, class_validator_1.IsString)(),
41
+ (0, class_validator_1.MaxLength)(100),
42
+ __metadata("design:type", Object)
43
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "categoryName", void 0);
44
+ __decorate([
45
+ (0, class_validator_1.IsOptional)(),
46
+ (0, class_validator_1.IsString)(),
47
+ (0, class_validator_1.MaxLength)(30),
48
+ __metadata("design:type", Object)
49
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "priority", void 0);
50
+ __decorate([
51
+ (0, class_validator_1.IsOptional)(),
52
+ (0, class_validator_1.IsString)(),
53
+ (0, class_validator_1.MaxLength)(500),
54
+ __metadata("design:type", Object)
55
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "summary", void 0);
56
+ __decorate([
57
+ (0, class_validator_1.IsOptional)(),
58
+ (0, class_validator_1.IsString)(),
59
+ (0, class_validator_1.MaxLength)(500),
60
+ __metadata("design:type", Object)
61
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "address", void 0);
62
+ __decorate([
63
+ (0, class_validator_1.IsOptional)(),
64
+ (0, class_validator_1.IsNumber)(),
65
+ __metadata("design:type", Object)
66
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "latitude", void 0);
67
+ __decorate([
68
+ (0, class_validator_1.IsOptional)(),
69
+ (0, class_validator_1.IsNumber)(),
70
+ __metadata("design:type", Object)
71
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "longitude", void 0);
72
+ __decorate([
73
+ (0, class_validator_1.IsOptional)(),
74
+ (0, class_validator_1.IsString)(),
75
+ (0, class_validator_1.MaxLength)(200),
76
+ __metadata("design:type", Object)
77
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "reporterName", void 0);
78
+ __decorate([
79
+ (0, class_validator_1.IsOptional)(),
80
+ (0, class_validator_1.IsString)(),
81
+ (0, class_validator_1.MaxLength)(32),
82
+ __metadata("design:type", Object)
83
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "reporterPhoneNumber", void 0);
84
+ __decorate([
85
+ (0, class_validator_1.IsBoolean)(),
86
+ __metadata("design:type", Boolean)
87
+ ], ResponseUnitDispatchMessageIncidentDto.prototype, "anonymous", void 0);
88
+ class ResponseUnitDispatchRecipientDto {
89
+ }
90
+ exports.ResponseUnitDispatchRecipientDto = ResponseUnitDispatchRecipientDto;
91
+ __decorate([
92
+ (0, class_validator_1.IsString)(),
93
+ (0, class_validator_1.IsNotEmpty)(),
94
+ (0, class_validator_1.MaxLength)(32),
95
+ __metadata("design:type", String)
96
+ ], ResponseUnitDispatchRecipientDto.prototype, "phoneNumber", void 0);
97
+ __decorate([
98
+ (0, class_validator_1.IsString)(),
99
+ (0, class_validator_1.IsNotEmpty)(),
100
+ (0, class_validator_1.MaxLength)(300),
101
+ __metadata("design:type", String)
102
+ ], ResponseUnitDispatchRecipientDto.prototype, "responseUnitName", void 0);
103
+ class ResponseUnitDispatchNotificationRequestedDto {
104
+ }
105
+ exports.ResponseUnitDispatchNotificationRequestedDto = ResponseUnitDispatchNotificationRequestedDto;
106
+ __decorate([
107
+ (0, class_validator_1.Equals)(1),
108
+ __metadata("design:type", Number)
109
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "schemaVersion", void 0);
110
+ __decorate([
111
+ (0, class_validator_1.IsString)(),
112
+ (0, class_validator_1.IsNotEmpty)(),
113
+ __metadata("design:type", String)
114
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "eventId", void 0);
115
+ __decorate([
116
+ (0, class_validator_1.IsISO8601)(),
117
+ __metadata("design:type", String)
118
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "occurredAt", void 0);
119
+ __decorate([
120
+ (0, class_transformer_1.Type)(() => Number),
121
+ (0, class_validator_1.IsInt)(),
122
+ (0, class_validator_1.IsPositive)(),
123
+ __metadata("design:type", Number)
124
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "dispatchId", void 0);
125
+ __decorate([
126
+ (0, class_validator_1.IsString)(),
127
+ (0, class_validator_1.IsNotEmpty)(),
128
+ __metadata("design:type", String)
129
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "dispatchReference", void 0);
130
+ __decorate([
131
+ (0, class_transformer_1.Type)(() => Number),
132
+ (0, class_validator_1.IsInt)(),
133
+ (0, class_validator_1.IsPositive)(),
134
+ __metadata("design:type", Number)
135
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "incidentId", void 0);
136
+ __decorate([
137
+ (0, class_transformer_1.Type)(() => Number),
138
+ (0, class_validator_1.IsInt)(),
139
+ (0, class_validator_1.IsPositive)(),
140
+ __metadata("design:type", Number)
141
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "organizationId", void 0);
142
+ __decorate([
143
+ (0, class_validator_1.IsOptional)(),
144
+ (0, class_transformer_1.Type)(() => Number),
145
+ (0, class_validator_1.IsInt)(),
146
+ __metadata("design:type", Object)
147
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "controlCentreId", void 0);
148
+ __decorate([
149
+ (0, class_transformer_1.Type)(() => Number),
150
+ (0, class_validator_1.IsInt)(),
151
+ (0, class_validator_1.IsPositive)(),
152
+ __metadata("design:type", Number)
153
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "responseUnitId", void 0);
154
+ __decorate([
155
+ (0, class_transformer_1.Type)(() => Number),
156
+ (0, class_validator_1.IsInt)(),
157
+ (0, class_validator_1.Min)(1),
158
+ __metadata("design:type", Number)
159
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "attempt", void 0);
160
+ __decorate([
161
+ (0, class_validator_1.IsOptional)(),
162
+ (0, class_validator_1.IsString)(),
163
+ __metadata("design:type", Object)
164
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "appId", void 0);
165
+ __decorate([
166
+ (0, class_validator_1.ValidateNested)(),
167
+ (0, class_transformer_1.Type)(() => ResponseUnitDispatchRecipientDto),
168
+ __metadata("design:type", ResponseUnitDispatchRecipientDto)
169
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "recipient", void 0);
170
+ __decorate([
171
+ (0, class_validator_1.ValidateNested)(),
172
+ (0, class_transformer_1.Type)(() => ResponseUnitDispatchMessageIncidentDto),
173
+ __metadata("design:type", ResponseUnitDispatchMessageIncidentDto)
174
+ ], ResponseUnitDispatchNotificationRequestedDto.prototype, "incident", void 0);
175
+ class ResponseUnitDispatchNotificationResultDto {
176
+ }
177
+ exports.ResponseUnitDispatchNotificationResultDto = ResponseUnitDispatchNotificationResultDto;
178
+ __decorate([
179
+ (0, class_validator_1.Equals)(1),
180
+ __metadata("design:type", Number)
181
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "schemaVersion", void 0);
182
+ __decorate([
183
+ (0, class_validator_1.IsString)(),
184
+ (0, class_validator_1.IsNotEmpty)(),
185
+ __metadata("design:type", String)
186
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "eventId", void 0);
187
+ __decorate([
188
+ (0, class_validator_1.IsISO8601)(),
189
+ __metadata("design:type", String)
190
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "occurredAt", void 0);
191
+ __decorate([
192
+ (0, class_transformer_1.Type)(() => Number),
193
+ (0, class_validator_1.IsInt)(),
194
+ (0, class_validator_1.IsPositive)(),
195
+ __metadata("design:type", Number)
196
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "dispatchId", void 0);
197
+ __decorate([
198
+ (0, class_transformer_1.Type)(() => Number),
199
+ (0, class_validator_1.IsInt)(),
200
+ (0, class_validator_1.IsPositive)(),
201
+ __metadata("design:type", Number)
202
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "incidentId", void 0);
203
+ __decorate([
204
+ (0, class_transformer_1.Type)(() => Number),
205
+ (0, class_validator_1.IsInt)(),
206
+ (0, class_validator_1.IsPositive)(),
207
+ __metadata("design:type", Number)
208
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "organizationId", void 0);
209
+ __decorate([
210
+ (0, class_transformer_1.Type)(() => Number),
211
+ (0, class_validator_1.IsInt)(),
212
+ (0, class_validator_1.Min)(1),
213
+ __metadata("design:type", Number)
214
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "attempt", void 0);
215
+ __decorate([
216
+ (0, class_validator_1.IsEnum)(response_unit_dispatch_notification_status_enum_1.ResponseUnitDispatchNotificationStatus),
217
+ __metadata("design:type", String)
218
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "status", void 0);
219
+ __decorate([
220
+ (0, class_validator_1.IsOptional)(),
221
+ (0, class_validator_1.IsEnum)(response_unit_dispatch_notification_failure_enum_1.ResponseUnitDispatchNotificationFailure),
222
+ __metadata("design:type", Object)
223
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "failureReason", void 0);
224
+ __decorate([
225
+ (0, class_validator_1.IsOptional)(),
226
+ (0, class_validator_1.IsString)(),
227
+ (0, class_validator_1.MaxLength)(20),
228
+ __metadata("design:type", Object)
229
+ ], ResponseUnitDispatchNotificationResultDto.prototype, "providerCode", void 0);
230
+ //# sourceMappingURL=response-unit-dispatch-notification.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-unit-dispatch-notification.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/dtos/response-unit-dispatch-notification.dto.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResponseUnitDispatchProfileQueryDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ /** Accepts `ids=1,2,3` or repeated `ids=1&ids=2`. */
16
+ const toIdList = ({ value }) => {
17
+ if (value === undefined || value === null || value === '')
18
+ return undefined;
19
+ const raw = Array.isArray(value) ? value : String(value).split(',');
20
+ return raw.map((item) => Number(String(item).trim())).filter((item) => item !== 0);
21
+ };
22
+ /**
23
+ * `GET /response-units/dispatch-profiles` (clarion-organization, internal).
24
+ *
25
+ * Scoped by the forwarded user context; `organizationId` is honoured for a
26
+ * Super-Admin only. `includeContact` adds the unit's phone number and is used by
27
+ * the dispatch command alone - a recommendation never carries one.
28
+ */
29
+ class ResponseUnitDispatchProfileQueryDto {
30
+ }
31
+ exports.ResponseUnitDispatchProfileQueryDto = ResponseUnitDispatchProfileQueryDto;
32
+ __decorate([
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_transformer_1.Type)(() => Number),
35
+ (0, class_validator_1.IsInt)(),
36
+ (0, class_validator_1.IsPositive)(),
37
+ __metadata("design:type", Number)
38
+ ], ResponseUnitDispatchProfileQueryDto.prototype, "organizationId", void 0);
39
+ __decorate([
40
+ (0, class_validator_1.IsOptional)(),
41
+ (0, class_transformer_1.Type)(() => Number),
42
+ (0, class_validator_1.IsInt)(),
43
+ (0, class_validator_1.IsPositive)(),
44
+ __metadata("design:type", Number)
45
+ ], ResponseUnitDispatchProfileQueryDto.prototype, "controlCentreId", void 0);
46
+ __decorate([
47
+ (0, class_validator_1.IsOptional)(),
48
+ (0, class_transformer_1.Transform)(toIdList),
49
+ (0, class_validator_1.IsArray)(),
50
+ (0, class_validator_1.ArrayMaxSize)(500),
51
+ (0, class_validator_1.IsInt)({ each: true }),
52
+ (0, class_validator_1.IsPositive)({ each: true }),
53
+ __metadata("design:type", Array)
54
+ ], ResponseUnitDispatchProfileQueryDto.prototype, "ids", void 0);
55
+ __decorate([
56
+ (0, class_validator_1.IsOptional)(),
57
+ (0, class_transformer_1.Transform)(({ value }) => value === true || value === 'true' || value === '1'),
58
+ (0, class_validator_1.IsBoolean)(),
59
+ __metadata("design:type", Boolean)
60
+ ], ResponseUnitDispatchProfileQueryDto.prototype, "includeContact", void 0);
61
+ //# sourceMappingURL=response-unit-dispatch-profile-query.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-unit-dispatch-profile-query.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/dtos/response-unit-dispatch-profile-query.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAoD;AACpD,qDAAkG;AAElG,qDAAqD;AACrD,MAAM,QAAQ,GAAG,CAAC,EAAE,KAAK,EAAsB,EAAW,EAAE;IACxD,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5E,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpE,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC;AACvF,CAAC,CAAC;AAEF;;;;;;GAMG;AACH,MAAa,mCAAmC;CAyB/C;AAzBD,kFAyBC;AApBG;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;2EACW;AAMxB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;4EACY;AAQzB;IANC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,QAAQ,CAAC;IACnB,IAAA,yBAAO,GAAE;IACT,IAAA,8BAAY,EAAC,GAAG,CAAC;IACjB,IAAA,uBAAK,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACrB,IAAA,4BAAU,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;;gEACZ;AAKf;IAHC,IAAA,4BAAU,GAAE;IACZ,IAAA,6BAAS,EAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG,CAAC;IAC7E,IAAA,2BAAS,GAAE;;2EACa"}
@@ -0,0 +1,66 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ 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;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.ResponseUnitNearbyQueryDto = void 0;
13
+ const class_transformer_1 = require("class-transformer");
14
+ const class_validator_1 = require("class-validator");
15
+ const response_unit_dispatch_defaults_const_1 = require("../constants/response-unit-dispatch-defaults.const");
16
+ /**
17
+ * `GET /tracking/response-units/nearby` (clarion-response-tracking).
18
+ *
19
+ * Tenancy is NOT in the query: the tracking service takes it from the forwarded
20
+ * user context. `organizationId` is honoured for a Super-Admin only and a
21
+ * control-centre caller is pinned to their own centre whatever they pass.
22
+ */
23
+ class ResponseUnitNearbyQueryDto {
24
+ }
25
+ exports.ResponseUnitNearbyQueryDto = ResponseUnitNearbyQueryDto;
26
+ __decorate([
27
+ (0, class_transformer_1.Type)(() => Number),
28
+ (0, class_validator_1.IsLatitude)(),
29
+ __metadata("design:type", Number)
30
+ ], ResponseUnitNearbyQueryDto.prototype, "latitude", void 0);
31
+ __decorate([
32
+ (0, class_transformer_1.Type)(() => Number),
33
+ (0, class_validator_1.IsLongitude)(),
34
+ __metadata("design:type", Number)
35
+ ], ResponseUnitNearbyQueryDto.prototype, "longitude", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsOptional)(),
38
+ (0, class_transformer_1.Type)(() => Number),
39
+ (0, class_validator_1.IsInt)(),
40
+ (0, class_validator_1.IsPositive)(),
41
+ __metadata("design:type", Number)
42
+ ], ResponseUnitNearbyQueryDto.prototype, "organizationId", void 0);
43
+ __decorate([
44
+ (0, class_validator_1.IsOptional)(),
45
+ (0, class_transformer_1.Type)(() => Number),
46
+ (0, class_validator_1.IsInt)(),
47
+ (0, class_validator_1.IsPositive)(),
48
+ __metadata("design:type", Number)
49
+ ], ResponseUnitNearbyQueryDto.prototype, "controlCentreId", void 0);
50
+ __decorate([
51
+ (0, class_validator_1.IsOptional)(),
52
+ (0, class_transformer_1.Type)(() => Number),
53
+ (0, class_validator_1.IsNumber)(),
54
+ (0, class_validator_1.Min)(response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_NEARBY_LIMITS.minRadiusMetres),
55
+ (0, class_validator_1.Max)(response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_NEARBY_LIMITS.maxRadiusMetres),
56
+ __metadata("design:type", Number)
57
+ ], ResponseUnitNearbyQueryDto.prototype, "radiusMetres", void 0);
58
+ __decorate([
59
+ (0, class_validator_1.IsOptional)(),
60
+ (0, class_transformer_1.Type)(() => Number),
61
+ (0, class_validator_1.IsInt)(),
62
+ (0, class_validator_1.Min)(1),
63
+ (0, class_validator_1.Max)(response_unit_dispatch_defaults_const_1.RESPONSE_UNIT_NEARBY_LIMITS.maxLimit),
64
+ __metadata("design:type", Number)
65
+ ], ResponseUnitNearbyQueryDto.prototype, "limit", void 0);
66
+ //# sourceMappingURL=response-unit-nearby-query.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"response-unit-nearby-query.dto.js","sourceRoot":"","sources":["../../../../../src/modules/dispatch/dtos/response-unit-nearby-query.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yDAAyC;AACzC,qDAA6G;AAC7G,8GAAiG;AAEjG;;;;;;GAMG;AACH,MAAa,0BAA0B;CAkCtC;AAlCD,gEAkCC;AA/BG;IAFC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,4BAAU,GAAE;;4DACK;AAIlB;IAFC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,6BAAW,GAAE;;6DACK;AAMnB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;kEACW;AAMxB;IAJC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,4BAAU,GAAE;;mEACY;AAOzB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,0BAAQ,GAAE;IACV,IAAA,qBAAG,EAAC,mEAA2B,CAAC,eAAe,CAAC;IAChD,IAAA,qBAAG,EAAC,mEAA2B,CAAC,eAAe,CAAC;;gEAC3B;AAOtB;IALC,IAAA,4BAAU,GAAE;IACZ,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,MAAM,CAAC;IAClB,IAAA,uBAAK,GAAE;IACP,IAAA,qBAAG,EAAC,CAAC,CAAC;IACN,IAAA,qBAAG,EAAC,mEAA2B,CAAC,QAAQ,CAAC;;yDAC3B"}