tabletcommand-backend-models 5.39.6 → 7.0.0

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 (391) hide show
  1. package/build/constants.js +24 -0
  2. package/build/constants.js.map +1 -1
  3. package/build/helpers.js +9 -10
  4. package/build/helpers.js.map +1 -1
  5. package/build/index.js +9 -3
  6. package/build/index.js.map +1 -1
  7. package/build/models/action-log.js +5 -8
  8. package/build/models/action-log.js.map +1 -1
  9. package/build/models/agency.js +9 -11
  10. package/build/models/agency.js.map +1 -1
  11. package/build/models/arcgis-group.js +8 -12
  12. package/build/models/arcgis-group.js.map +1 -1
  13. package/build/models/assignment.js +8 -10
  14. package/build/models/assignment.js.map +1 -1
  15. package/build/models/battalion.js +25 -25
  16. package/build/models/battalion.js.map +1 -1
  17. package/build/models/beacon-log.js +5 -8
  18. package/build/models/beacon-log.js.map +1 -1
  19. package/build/models/cad-incident-block.js +4 -8
  20. package/build/models/cad-incident-block.js.map +1 -1
  21. package/build/models/cad-incident-stream.js +4 -7
  22. package/build/models/cad-incident-stream.js.map +1 -1
  23. package/build/models/cad-incident.js +1 -5
  24. package/build/models/cad-incident.js.map +1 -1
  25. package/build/models/cad-simulation.js +11 -15
  26. package/build/models/cad-simulation.js.map +1 -1
  27. package/build/models/cad-status-map.js +4 -8
  28. package/build/models/cad-status-map.js.map +1 -1
  29. package/build/models/cad-status.js +5 -9
  30. package/build/models/cad-status.js.map +1 -1
  31. package/build/models/cad-vehicle-status-history.js +3 -8
  32. package/build/models/cad-vehicle-status-history.js.map +1 -1
  33. package/build/models/cad-vehicle-status.js +4 -9
  34. package/build/models/cad-vehicle-status.js.map +1 -1
  35. package/build/models/cad-vehicle.js +4 -8
  36. package/build/models/cad-vehicle.js.map +1 -1
  37. package/build/models/chart-device-stats.js +6 -11
  38. package/build/models/chart-device-stats.js.map +1 -1
  39. package/build/models/chart-incident.js +6 -11
  40. package/build/models/chart-incident.js.map +1 -1
  41. package/build/models/chart-managed-incident.js +6 -11
  42. package/build/models/chart-managed-incident.js.map +1 -1
  43. package/build/models/chart-user.js +5 -10
  44. package/build/models/chart-user.js.map +1 -1
  45. package/build/models/checklist-item.js +10 -16
  46. package/build/models/checklist-item.js.map +1 -1
  47. package/build/models/checklist.js +11 -17
  48. package/build/models/checklist.js.map +1 -1
  49. package/build/models/csv-import.js +5 -9
  50. package/build/models/csv-import.js.map +1 -1
  51. package/build/models/department.js +200 -207
  52. package/build/models/department.js.map +1 -1
  53. package/build/models/device-mapping.js +5 -9
  54. package/build/models/device-mapping.js.map +1 -1
  55. package/build/models/esri.js +12 -21
  56. package/build/models/esri.js.map +1 -1
  57. package/build/models/gst-mapping.js +5 -9
  58. package/build/models/gst-mapping.js.map +1 -1
  59. package/build/models/incident-event.js +10 -13
  60. package/build/models/incident-event.js.map +1 -1
  61. package/build/models/incident-notified.js +7 -11
  62. package/build/models/incident-notified.js.map +1 -1
  63. package/build/models/incident-takeover.js +5 -10
  64. package/build/models/incident-takeover.js.map +1 -1
  65. package/build/models/job-log.js +5 -9
  66. package/build/models/job-log.js.map +1 -1
  67. package/build/models/location.js +4 -8
  68. package/build/models/location.js.map +1 -1
  69. package/build/models/mail-log.js +5 -9
  70. package/build/models/mail-log.js.map +1 -1
  71. package/build/models/managed-incident.js +15 -23
  72. package/build/models/managed-incident.js.map +1 -1
  73. package/build/models/mark43-incident-retry.js +5 -9
  74. package/build/models/mark43-incident-retry.js.map +1 -1
  75. package/build/models/message.js +6 -10
  76. package/build/models/message.js.map +1 -1
  77. package/build/models/monitor.js +5 -9
  78. package/build/models/monitor.js.map +1 -1
  79. package/build/models/personnel-import.js +10 -13
  80. package/build/models/personnel-import.js.map +1 -1
  81. package/build/models/personnel-known.js +7 -9
  82. package/build/models/personnel-known.js.map +1 -1
  83. package/build/models/personnel-roster.js +5 -7
  84. package/build/models/personnel-roster.js.map +1 -1
  85. package/build/models/rate-limit.js +5 -9
  86. package/build/models/rate-limit.js.map +1 -1
  87. package/build/models/release-note.js +5 -10
  88. package/build/models/release-note.js.map +1 -1
  89. package/build/models/remote-log-stream.js +46 -20
  90. package/build/models/remote-log-stream.js.map +1 -1
  91. package/build/models/remote-log.js +46 -20
  92. package/build/models/remote-log.js.map +1 -1
  93. package/build/models/schema/agency-cron-config.js +6 -7
  94. package/build/models/schema/agency-cron-config.js.map +1 -1
  95. package/build/models/schema/agency-saml.js +1 -2
  96. package/build/models/schema/agency-saml.js.map +1 -1
  97. package/build/models/schema/cad-incident.js +72 -30
  98. package/build/models/schema/cad-incident.js.map +1 -1
  99. package/build/models/schema/cad-status-option-selected.js +1 -2
  100. package/build/models/schema/cad-status-option-selected.js.map +1 -1
  101. package/build/models/schema/color.js +1 -2
  102. package/build/models/schema/color.js.map +1 -1
  103. package/build/models/schema/esri-auth.js +2 -3
  104. package/build/models/schema/esri-auth.js.map +1 -1
  105. package/build/models/schema/esri-error.js +1 -2
  106. package/build/models/schema/esri-error.js.map +1 -1
  107. package/build/models/schema/esri-map.js +4 -5
  108. package/build/models/schema/esri-map.js.map +1 -1
  109. package/build/models/schema/firemapper-auth.js +2 -3
  110. package/build/models/schema/firemapper-auth.js.map +1 -1
  111. package/build/models/schema/geojson-point.js +1 -2
  112. package/build/models/schema/geojson-point.js.map +1 -1
  113. package/build/models/schema/oauth.js +1 -2
  114. package/build/models/schema/oauth.js.map +1 -1
  115. package/build/models/schema/pubnub-token.js +2 -2
  116. package/build/models/schema/pubnub-token.js.map +1 -1
  117. package/build/models/schema/shared-incident.js +7 -9
  118. package/build/models/schema/shared-incident.js.map +1 -1
  119. package/build/models/schema/validation-error-item.js +1 -1
  120. package/build/models/schema/validation-error-item.js.map +1 -1
  121. package/build/models/session.js +7 -15
  122. package/build/models/session.js.map +1 -1
  123. package/build/models/smtp-unhandled.js +5 -10
  124. package/build/models/smtp-unhandled.js.map +1 -1
  125. package/build/models/template.js +12 -16
  126. package/build/models/template.js.map +1 -1
  127. package/build/models/user-device.js +10 -14
  128. package/build/models/user-device.js.map +1 -1
  129. package/build/models/user-registration.js +3 -6
  130. package/build/models/user-registration.js.map +1 -1
  131. package/build/models/user.js +13 -16
  132. package/build/models/user.js.map +1 -1
  133. package/build/models/validation-report.js +7 -10
  134. package/build/models/validation-report.js.map +1 -1
  135. package/build/test/arcgis-group.js +7 -3
  136. package/build/test/arcgis-group.js.map +1 -1
  137. package/build/test/mock.js +7 -1
  138. package/build/test/mock.js.map +1 -1
  139. package/cspell.json +9 -13
  140. package/definitions/constants.d.ts +21 -2
  141. package/definitions/constants.d.ts.map +1 -1
  142. package/definitions/helpers.d.ts +1 -6
  143. package/definitions/helpers.d.ts.map +1 -1
  144. package/definitions/index.d.ts +179 -52
  145. package/definitions/index.d.ts.map +1 -1
  146. package/definitions/models/action-log.d.ts +37 -16
  147. package/definitions/models/action-log.d.ts.map +1 -1
  148. package/definitions/models/agency.d.ts +61 -622
  149. package/definitions/models/agency.d.ts.map +1 -1
  150. package/definitions/models/arcgis-group.d.ts +62 -118
  151. package/definitions/models/arcgis-group.d.ts.map +1 -1
  152. package/definitions/models/assignment.d.ts +34 -12
  153. package/definitions/models/assignment.d.ts.map +1 -1
  154. package/definitions/models/battalion.d.ts +60 -192
  155. package/definitions/models/battalion.d.ts.map +1 -1
  156. package/definitions/models/beacon-log.d.ts +34 -13
  157. package/definitions/models/beacon-log.d.ts.map +1 -1
  158. package/definitions/models/cad-incident-block.d.ts +35 -21
  159. package/definitions/models/cad-incident-block.d.ts.map +1 -1
  160. package/definitions/models/cad-incident-stream.d.ts +35 -13
  161. package/definitions/models/cad-incident-stream.d.ts.map +1 -1
  162. package/definitions/models/cad-incident.d.ts +31 -440
  163. package/definitions/models/cad-incident.d.ts.map +1 -1
  164. package/definitions/models/cad-simulation.d.ts +69 -113
  165. package/definitions/models/cad-simulation.d.ts.map +1 -1
  166. package/definitions/models/cad-status-map.d.ts +40 -27
  167. package/definitions/models/cad-status-map.d.ts.map +1 -1
  168. package/definitions/models/cad-status.d.ts +49 -85
  169. package/definitions/models/cad-status.d.ts.map +1 -1
  170. package/definitions/models/cad-vehicle-status-history.d.ts +34 -29
  171. package/definitions/models/cad-vehicle-status-history.d.ts.map +1 -1
  172. package/definitions/models/cad-vehicle-status.d.ts +42 -41
  173. package/definitions/models/cad-vehicle-status.d.ts.map +1 -1
  174. package/definitions/models/cad-vehicle.d.ts +39 -22
  175. package/definitions/models/cad-vehicle.d.ts.map +1 -1
  176. package/definitions/models/chart-device-stats.d.ts +44 -38
  177. package/definitions/models/chart-device-stats.d.ts.map +1 -1
  178. package/definitions/models/chart-incident.d.ts +40 -22
  179. package/definitions/models/chart-incident.d.ts.map +1 -1
  180. package/definitions/models/chart-managed-incident.d.ts +40 -22
  181. package/definitions/models/chart-managed-incident.d.ts.map +1 -1
  182. package/definitions/models/chart-user.d.ts +34 -12
  183. package/definitions/models/chart-user.d.ts.map +1 -1
  184. package/definitions/models/checklist-item.d.ts +38 -64
  185. package/definitions/models/checklist-item.d.ts.map +1 -1
  186. package/definitions/models/checklist.d.ts +42 -172
  187. package/definitions/models/checklist.d.ts.map +1 -1
  188. package/definitions/models/csv-import.d.ts +37 -16
  189. package/definitions/models/csv-import.d.ts.map +1 -1
  190. package/definitions/models/department.d.ts +199 -755
  191. package/definitions/models/department.d.ts.map +1 -1
  192. package/definitions/models/device-mapping.d.ts +33 -12
  193. package/definitions/models/device-mapping.d.ts.map +1 -1
  194. package/definitions/models/esri.d.ts +58 -684
  195. package/definitions/models/esri.d.ts.map +1 -1
  196. package/definitions/models/gst-mapping.d.ts +33 -12
  197. package/definitions/models/gst-mapping.d.ts.map +1 -1
  198. package/definitions/models/incident-event.d.ts +48 -129
  199. package/definitions/models/incident-event.d.ts.map +1 -1
  200. package/definitions/models/incident-notified.d.ts +45 -36
  201. package/definitions/models/incident-notified.d.ts.map +1 -1
  202. package/definitions/models/incident-takeover.d.ts +32 -11
  203. package/definitions/models/incident-takeover.d.ts.map +1 -1
  204. package/definitions/models/job-log.d.ts +36 -14
  205. package/definitions/models/job-log.d.ts.map +1 -1
  206. package/definitions/models/location.d.ts +45 -42
  207. package/definitions/models/location.d.ts.map +1 -1
  208. package/definitions/models/mail-log.d.ts +37 -16
  209. package/definitions/models/mail-log.d.ts.map +1 -1
  210. package/definitions/models/managed-incident.d.ts +138 -649
  211. package/definitions/models/managed-incident.d.ts.map +1 -1
  212. package/definitions/models/mark43-incident-retry.d.ts +44 -37
  213. package/definitions/models/mark43-incident-retry.d.ts.map +1 -1
  214. package/definitions/models/message.d.ts +42 -33
  215. package/definitions/models/message.d.ts.map +1 -1
  216. package/definitions/models/monitor.d.ts +33 -12
  217. package/definitions/models/monitor.d.ts.map +1 -1
  218. package/definitions/models/personnel-import.d.ts +48 -128
  219. package/definitions/models/personnel-import.d.ts.map +1 -1
  220. package/definitions/models/personnel-known.d.ts +45 -91
  221. package/definitions/models/personnel-known.d.ts.map +1 -1
  222. package/definitions/models/personnel-roster.d.ts +40 -70
  223. package/definitions/models/personnel-roster.d.ts.map +1 -1
  224. package/definitions/models/rate-limit.d.ts +33 -12
  225. package/definitions/models/rate-limit.d.ts.map +1 -1
  226. package/definitions/models/release-note.d.ts +34 -13
  227. package/definitions/models/release-note.d.ts.map +1 -1
  228. package/definitions/models/remote-log-stream.d.ts +48 -54
  229. package/definitions/models/remote-log-stream.d.ts.map +1 -1
  230. package/definitions/models/remote-log.d.ts +52 -55
  231. package/definitions/models/remote-log.d.ts.map +1 -1
  232. package/definitions/models/schema/agency-cron-config.d.ts +80 -213
  233. package/definitions/models/schema/agency-cron-config.d.ts.map +1 -1
  234. package/definitions/models/schema/agency-saml.d.ts +37 -30
  235. package/definitions/models/schema/agency-saml.d.ts.map +1 -1
  236. package/definitions/models/schema/cad-incident.d.ts +157 -652
  237. package/definitions/models/schema/cad-incident.d.ts.map +1 -1
  238. package/definitions/models/schema/cad-status-option-selected.d.ts +35 -21
  239. package/definitions/models/schema/cad-status-option-selected.d.ts.map +1 -1
  240. package/definitions/models/schema/color.d.ts +33 -13
  241. package/definitions/models/schema/color.d.ts.map +1 -1
  242. package/definitions/models/schema/esri-auth.d.ts +38 -25
  243. package/definitions/models/schema/esri-auth.d.ts.map +1 -1
  244. package/definitions/models/schema/esri-error.d.ts +35 -21
  245. package/definitions/models/schema/esri-error.d.ts.map +1 -1
  246. package/definitions/models/schema/esri-map.d.ts +66 -190
  247. package/definitions/models/schema/esri-map.d.ts.map +1 -1
  248. package/definitions/models/schema/firemapper-auth.d.ts +39 -41
  249. package/definitions/models/schema/firemapper-auth.d.ts.map +1 -1
  250. package/definitions/models/schema/geojson-point.d.ts +33 -16
  251. package/definitions/models/schema/geojson-point.d.ts.map +1 -1
  252. package/definitions/models/schema/oauth.d.ts +34 -17
  253. package/definitions/models/schema/oauth.d.ts.map +1 -1
  254. package/definitions/models/schema/pubnub-token.d.ts +35 -18
  255. package/definitions/models/schema/pubnub-token.d.ts.map +1 -1
  256. package/definitions/models/schema/shared-incident.d.ts +100 -160
  257. package/definitions/models/schema/shared-incident.d.ts.map +1 -1
  258. package/definitions/models/schema/validation-error-item.d.ts +37 -26
  259. package/definitions/models/schema/validation-error-item.d.ts.map +1 -1
  260. package/definitions/models/session.d.ts +34 -24
  261. package/definitions/models/session.d.ts.map +1 -1
  262. package/definitions/models/smtp-unhandled.d.ts +33 -11
  263. package/definitions/models/smtp-unhandled.d.ts.map +1 -1
  264. package/definitions/models/template.d.ts +53 -130
  265. package/definitions/models/template.d.ts.map +1 -1
  266. package/definitions/models/user-device.d.ts +72 -133
  267. package/definitions/models/user-device.d.ts.map +1 -1
  268. package/definitions/models/user-registration.d.ts +32 -11
  269. package/definitions/models/user-registration.d.ts.map +1 -1
  270. package/definitions/models/user.d.ts +59 -430
  271. package/definitions/models/user.d.ts.map +1 -1
  272. package/definitions/models/validation-report.d.ts +47 -382
  273. package/definitions/models/validation-report.d.ts.map +1 -1
  274. package/definitions/test/mock.d.ts +1 -3
  275. package/definitions/test/mock.d.ts.map +1 -1
  276. package/package.json +2 -4
  277. package/src/constants.ts +23 -6
  278. package/src/helpers.ts +7 -8
  279. package/src/index.ts +10 -7
  280. package/src/models/action-log.ts +23 -15
  281. package/src/models/agency.ts +51 -21
  282. package/src/models/arcgis-group.ts +60 -18
  283. package/src/models/assignment.ts +30 -20
  284. package/src/models/battalion.ts +65 -37
  285. package/src/models/beacon-log.ts +17 -15
  286. package/src/models/cad-incident-block.ts +20 -16
  287. package/src/models/cad-incident-stream.ts +18 -15
  288. package/src/models/cad-incident.ts +6 -11
  289. package/src/models/cad-simulation.ts +93 -30
  290. package/src/models/cad-status-map.ts +21 -13
  291. package/src/models/cad-status.ts +46 -15
  292. package/src/models/cad-vehicle-status-history.ts +24 -17
  293. package/src/models/cad-vehicle-status.ts +38 -18
  294. package/src/models/cad-vehicle.ts +24 -13
  295. package/src/models/chart-device-stats.ts +25 -16
  296. package/src/models/chart-incident.ts +22 -16
  297. package/src/models/chart-managed-incident.ts +22 -16
  298. package/src/models/chart-user.ts +17 -15
  299. package/src/models/checklist-item.ts +29 -26
  300. package/src/models/checklist.ts +31 -25
  301. package/src/models/csv-import.ts +26 -14
  302. package/src/models/department.ts +552 -221
  303. package/src/models/device-mapping.ts +27 -14
  304. package/src/models/esri.ts +40 -30
  305. package/src/models/gst-mapping.ts +28 -16
  306. package/src/models/incident-event.ts +38 -18
  307. package/src/models/incident-notified.ts +31 -17
  308. package/src/models/incident-takeover.ts +23 -14
  309. package/src/models/job-log.ts +20 -15
  310. package/src/models/location.ts +45 -18
  311. package/src/models/mail-log.ts +26 -14
  312. package/src/models/managed-incident.ts +179 -32
  313. package/src/models/mark43-incident-retry.ts +31 -15
  314. package/src/models/message.ts +32 -16
  315. package/src/models/monitor.ts +19 -14
  316. package/src/models/personnel-import.ts +39 -18
  317. package/src/models/personnel-known.ts +30 -16
  318. package/src/models/personnel-roster.ts +23 -14
  319. package/src/models/rate-limit.ts +16 -14
  320. package/src/models/release-note.ts +18 -17
  321. package/src/models/remote-log-stream.ts +80 -27
  322. package/src/models/remote-log.ts +82 -27
  323. package/src/models/schema/agency-cron-config.ts +62 -7
  324. package/src/models/schema/agency-saml.ts +10 -2
  325. package/src/models/schema/cad-incident.ts +212 -40
  326. package/src/models/schema/cad-status-option-selected.ts +8 -2
  327. package/src/models/schema/color.ts +6 -2
  328. package/src/models/schema/esri-auth.ts +12 -3
  329. package/src/models/schema/esri-error.ts +8 -2
  330. package/src/models/schema/esri-map.ts +43 -5
  331. package/src/models/schema/firemapper-auth.ts +13 -3
  332. package/src/models/schema/geojson-point.ts +6 -2
  333. package/src/models/schema/oauth.ts +8 -3
  334. package/src/models/schema/pubnub-token.ts +9 -4
  335. package/src/models/schema/shared-incident.ts +54 -8
  336. package/src/models/schema/validation-error-item.ts +9 -2
  337. package/src/models/session.ts +33 -25
  338. package/src/models/smtp-unhandled.ts +15 -15
  339. package/src/models/template.ts +43 -25
  340. package/src/models/user-device.ts +66 -19
  341. package/src/models/user-registration.ts +26 -13
  342. package/src/models/user.ts +79 -27
  343. package/src/models/validation-report.ts +22 -16
  344. package/src/test/arcgis-group.ts +7 -7
  345. package/src/test/mock.ts +6 -4
  346. package/test/0index.js +9 -8
  347. package/test/action-log.js +18 -28
  348. package/test/agency.js +15 -27
  349. package/test/arcgis-group.js +6 -14
  350. package/test/assignment.js +14 -22
  351. package/test/battalion.js +14 -24
  352. package/test/cad-incident-block.js +13 -19
  353. package/test/cad-incident.js +70 -77
  354. package/test/cad-simulation.js +12 -20
  355. package/test/cad-status-map.js +13 -21
  356. package/test/cad-status.js +33 -42
  357. package/test/cad-vehicle-status-history.js +17 -26
  358. package/test/cad-vehicle-status.js +23 -32
  359. package/test/cad-vehicle.js +18 -27
  360. package/test/checklist-item.js +20 -29
  361. package/test/checklist.js +18 -25
  362. package/test/csv-import.js +22 -29
  363. package/test/department.js +62 -66
  364. package/test/device-mapping.js +18 -27
  365. package/test/esri.js +28 -34
  366. package/test/gst-mapping.js +17 -26
  367. package/test/incident-event.js +21 -28
  368. package/test/incident-notified.js +16 -25
  369. package/test/incident-takeover.js +18 -27
  370. package/test/job-log.js +16 -25
  371. package/test/location.js +30 -37
  372. package/test/mail-log.js +24 -33
  373. package/test/managed-incident.js +57 -66
  374. package/test/mark43-incident-retry.js +13 -22
  375. package/test/message.js +18 -27
  376. package/test/mock.js +20 -20
  377. package/test/monitor.js +14 -21
  378. package/test/personnel-import.js +29 -36
  379. package/test/rate-limit.js +12 -21
  380. package/test/release-note.js +5 -11
  381. package/test/session.js +23 -32
  382. package/test/template.js +19 -28
  383. package/test/user-device.js +30 -37
  384. package/test/user-registration.js +24 -33
  385. package/test/user.js +26 -35
  386. package/test/validation-report.js +10 -17
  387. package/build/models/schema/remote-file.js +0 -50
  388. package/build/models/schema/remote-file.js.map +0 -1
  389. package/definitions/models/schema/remote-file.d.ts +0 -44
  390. package/definitions/models/schema/remote-file.d.ts.map +0 -1
  391. package/src/models/schema/remote-file.ts +0 -53
@@ -2,26 +2,527 @@ import * as uuid from "uuid";
2
2
  import * as mongooseLeanVirtuals from "mongoose-lean-virtuals";
3
3
 
4
4
  import {
5
- createSchema,
6
- createModel,
7
5
  currentDate,
8
- DocumentTypeFromSchema,
9
- FieldsOfDocument,
10
6
  MongooseModule,
11
7
  retrieveCurrentUnixTime,
12
- ItemTypeFromTypeSchemaFunction,
13
- ModelTypeFromTypeSchemaFunction,
14
- ReplaceModelReturnType,
15
8
  } from "../helpers";
16
- import ColorModule from "./schema/color";
17
- import PubNubTokenSchema from "./schema/pubnub-token";
9
+ import ColorModule, { ColorSchemaType } from "./schema/color";
10
+ import PubNubTokenSchema, { PubNubTokenSchemaType } from "./schema/pubnub-token";
11
+ import { Model, Types } from "mongoose";
12
+
13
+ interface Mark43StatusConfigType {
14
+ TimeDispatched: string[],
15
+ TimeEnroute: string[],
16
+ TimeStaged: string[],
17
+ TimeCleared: string[],
18
+ TimeAtHospital: string[],
19
+ TimeTransporting: string[],
20
+ TimeArrived: string[],
21
+ }
22
+
23
+ interface Mark43ProcessLocationConfigType {
24
+ enabled: boolean,
25
+ locationUrl: string,
26
+ }
27
+
28
+ interface Mark43ProcessCommentConfigType {
29
+ enabled: boolean,
30
+ commentUrl: string,
31
+ usersUrl: string,
32
+ defaultUserId: number,
33
+ }
34
+
35
+ interface Mark43ProcessVehicleStatusConfigType {
36
+ enabled: boolean,
37
+ vehicleStatusUrl: string,
38
+ vehicleStatusListUrl: string,
39
+ }
40
+
41
+ interface Mark43ProcessConfigType {
42
+ location: Mark43ProcessLocationConfigType
43
+ comment: Mark43ProcessCommentConfigType
44
+ vehicleStatus: Mark43ProcessVehicleStatusConfigType
45
+ }
46
+
47
+ interface Mark43ConfigType {
48
+ baseUrl: string,
49
+ authToken: string,
50
+ apiToken: string,
51
+ userId: number,
52
+ enabled: boolean,
53
+ unitStatusCodes: Mark43StatusConfigType,
54
+ process: Mark43ProcessConfigType
55
+ }
56
+
57
+ interface IntterraFieldsType {
58
+ key: string,
59
+ value: string,
60
+ transformationRequired: boolean,
61
+ required: boolean,
62
+ enabled: boolean,
63
+ }
64
+
65
+ interface IntterraConnectionType {
66
+ active: boolean,
67
+ fields: IntterraFieldsType[],
68
+ callTypes: string[],
69
+ authKey: string,
70
+ authKeySecret: string,
71
+ agency: string,
72
+ description: string,
73
+ }
74
+
75
+ interface IntterraConfigType {
76
+ enabled: boolean,
77
+ connections: IntterraConnectionType[],
78
+ }
79
+
80
+ interface SkymiraConfigType {
81
+ enabled: boolean,
82
+ token: string,
83
+ locationsUrl: string,
84
+ }
85
+
86
+ interface SkytracConfigType {
87
+ enabled: boolean
88
+ licenseKey: string,
89
+ username: string,
90
+ secret: string,
91
+ serviceUrl: string,
92
+ configTag: string,
93
+ }
94
+ interface SimpleSenseConfigType {
95
+ token: string,
96
+ }
97
+
98
+ interface StatusMappingObjectConfigType {
99
+ status: string,
100
+ statusCode: string,
101
+ }
102
+
103
+ interface StatusMappingConfigType {
104
+ TimeDispatched: StatusMappingObjectConfigType
105
+ TimeEnroute: StatusMappingObjectConfigType
106
+ TimeStaged: StatusMappingObjectConfigType
107
+ TimeArrived: StatusMappingObjectConfigType
108
+ TimeCleared: StatusMappingObjectConfigType
109
+ TimeAtHospital: StatusMappingObjectConfigType
110
+ TimePatient: StatusMappingObjectConfigType
111
+ TimeTransporting: StatusMappingObjectConfigType
112
+ TimeTransportComplete: StatusMappingObjectConfigType
113
+ }
114
+
115
+ interface IncidentVehicleStatusConfigType {
116
+ enabled: boolean
117
+ statusMappings: StatusMappingConfigType
118
+ statusExclusions: string[]
119
+ }
120
+
121
+ interface FirstArrivingConfigType {
122
+ token: string,
123
+ apiUrl: string
124
+ }
125
+
126
+ interface SafetyPriorityKeywordType {
127
+ priority: number,
128
+ keywords: string[],
129
+ hexColor: string,
130
+ }
131
+
132
+ interface WebDisclaimerType {
133
+ message: string,
134
+ enabled: boolean,
135
+ }
136
+
137
+ interface AudioStreamType {
138
+ description: string,
139
+ channel: string,
140
+ url: string,
141
+ order: number,
142
+ }
143
+
144
+ interface AudioStreamGroupType {
145
+ group: string,
146
+ streams: AudioStreamType[],
147
+ order: number,
148
+ }
149
+
150
+ interface RestrictedCommentsType {
151
+ enabled: boolean,
152
+ callTypesAllowed: string[],
153
+ statusesAllowed: string[],
154
+ restrictedFields: string[],
155
+ restrictedMessage: string,
156
+ }
157
+
158
+ interface CustomButtonsType {
159
+ name: string,
160
+ url: string,
161
+ order: number,
162
+ allowExternal: boolean,
163
+ defaultExternal: boolean,
164
+ allowFloating: boolean,
165
+ color: ColorSchemaType,
166
+ }
167
+
168
+ interface FireMapperLayerType {
169
+ pathname: string,
170
+ name: string,
171
+ }
172
+
173
+ interface FireMapperOutlineType {
174
+ uuid: string,
175
+ layer: FireMapperLayerType[],
176
+ }
177
+
178
+ interface SamsaraConfigurationType {
179
+ enabled: boolean,
180
+ token: string,
181
+ }
182
+
183
+ interface FireMapperConfigurationType {
184
+ enabled: boolean,
185
+ layerRefreshInterval: number,
186
+ proLicenseCount: number,
187
+ host: string,
188
+ layer: FireMapperLayerType[],
189
+ staticLayer: FireMapperOutlineType[],
190
+ }
191
+
192
+ interface LicensingType {
193
+ tcPro2Way: number,
194
+ tcPro1Way: number,
195
+ tcMobile: number,
196
+ tcWeb: number,
197
+ fireMapperPro: number,
198
+ sendToCAD: number,
199
+ tcStreams: number,
200
+ }
201
+
202
+ interface IncidentTypeType {
203
+ name: string,
204
+ value: string,
205
+ allowPartialMatch: boolean,
206
+ callTypeDescription: string[],
207
+ callType: string[],
208
+ }
209
+
210
+ interface ShareIncidentRuleType {
211
+ ruleType: string,
212
+ departmentId: string,
213
+ departmentName: string,
214
+ configuration: object,
215
+ }
216
+
217
+ export interface Department extends Record<string, unknown> {
218
+ _id: Types.ObjectId,
219
+ id?: string,
220
+ uuid: string,
221
+ department: string,
222
+ fdid: string,
223
+ addressDetails: {
224
+ address: string,
225
+ city: string,
226
+ state: string,
227
+ zipCode: string,
228
+ country: string,
229
+ },
230
+ contact: {
231
+ department: string,
232
+ name: string,
233
+ phone: string,
234
+ email: string,
235
+ },
236
+ modified_unix_date: number,
237
+ modified: Date,
238
+ active: boolean,
239
+ apikey: string,
240
+ partialApiKey: string,
241
+ cadEmailUsername: string,
242
+ notificationEmails: string[]
243
+ rosteringEnabled: boolean,
244
+ externalNotificationsEnabled: boolean,
245
+ cadBidirectionalEnabled: boolean,
246
+ cadOneWayVehiclesEnabled: boolean,
247
+ cadAllowedIPAddresses: string[]
248
+ cadGetLocationEnabled: boolean,
249
+ cadAllowIgnoreAfterDays: number,
250
+ connectivity: {
251
+ incident: {
252
+ enabled: boolean,
253
+ staleMinutes: number,
254
+ heartbeatMinutes: number,
255
+ },
256
+ location: {
257
+ enabled: boolean,
258
+ staleMinutes: number,
259
+ heartbeatMinutes: number,
260
+ },
261
+ status: {
262
+ enabled: boolean,
263
+ staleMinutes: number,
264
+ heartbeatMinutes: number,
265
+ ackUnitsCount: number,
266
+ }
267
+ },
268
+ selfAssignmentEnabled: boolean,
269
+ userContributionEnabled: boolean,
270
+ vehicleSwapEnabled: boolean,
271
+ personnelStaffingEnabled: boolean,
272
+ authSource: string[],
273
+ defaultMapPosition: {
274
+ longitude: number,
275
+ latitude: number,
276
+ },
277
+ fireMapPDFReader: string,
278
+ locationStaleMinutes: number,
279
+ beaconEnabled: boolean,
280
+ firstArrivingEnabled: boolean,
281
+ firstArriving: FirstArrivingConfigType,
282
+ simpleSenseEnabled: boolean,
283
+ simpleSense: SimpleSenseConfigType,
284
+ incidentVehicleStatusEnabled: boolean,
285
+ fireMapperEnabled: boolean,
286
+ fireMapperRefreshInterval: number,
287
+ fireMapperProLicenses: number,
288
+ fireMapper: FireMapperConfigurationType,
289
+ arcGISMapsEnabled: boolean,
290
+ beansAIEnabled: boolean,
291
+ mowsEnabled: boolean,
292
+ rtsEnabled: boolean,
293
+ rtsChannelPrefix: string,
294
+ pubNubV3: PubNubTokenSchemaType,
295
+ socketIO: PubNubTokenSchemaType,
296
+ esriGeoJSONFilename: string,
297
+ incidentTypes: IncidentTypeType[],
298
+ ackDelimiter: string,
299
+ callTypeBlock: string[]
300
+ agencyIds: Types.ObjectId[],
301
+ signupKey: string,
302
+ signupDomains: string[],
303
+ safetyPriorityKeywords: SafetyPriorityKeywordType[],
304
+ shareLocationPhones: boolean,
305
+ shareLocationTablets: boolean,
306
+ shareAVL: {
307
+ enabled: boolean,
308
+ opAreaName: string,
309
+ opAreaCode: string,
310
+ fadeZoomLevel: number,
311
+ },
312
+ shareIncident: {
313
+ enabled: boolean,
314
+ rules: ShareIncidentRuleType[],
315
+ },
316
+ speedReportingEnabled: boolean,
317
+ accountType: string,
318
+ timeZone: string,
319
+ remoteLoggingEnabled: boolean,
320
+ logOffEnabled: boolean,
321
+ licensing: LicensingType,
322
+ webDisclaimer: WebDisclaimerType,
323
+ addUserInstructions: string,
324
+ restrictedComments: RestrictedCommentsType,
325
+ customButtons: CustomButtonsType[],
326
+ reportNumberEnabled: boolean,
327
+ audioConfiguration: AudioStreamGroupType[]
328
+ minPasswordLength: number,
329
+ zonehaven: {
330
+ enabled: boolean,
331
+ visible: boolean,
332
+ layerUrl: string,
333
+ fadeZoomLevel: number,
334
+ },
335
+ activeUserCount: number,
336
+ samsara: SamsaraConfigurationType
337
+ mark43: Mark43ConfigType
338
+ intterra: IntterraConfigType
339
+ vehicleRadioNameIsStable: boolean,
340
+ cadIncidentHistoryType: number[],
341
+ }
18
342
 
19
- export async function DepartmentModule(mongoose: MongooseModule) {
20
- const { Schema, Types } = mongoose;
343
+ const Mark43StatusConfigDefault = {
344
+ TimeDispatched: ["D"],
345
+ TimeEnroute: ["EN"],
346
+ TimeStaged: ["ST"],
347
+ TimeCleared: ["AV", "AVF", "AOR"],
348
+ TimeAtHospital: ["AH"],
349
+ TimeTransporting: ["T", "EH"],
350
+ TimeArrived: ["ATS", "A"],
351
+ };
352
+
353
+ const IntterraFieldsDefault = [
354
+ {
355
+ "key": "IncidentNumber",
356
+ "value": "incidentId",
357
+ "required": true,
358
+ "enabled": true,
359
+ "transformationRequired": false,
360
+ },
361
+ {
362
+ "key": "AgencyIncidentCallTypeDescription",
363
+ "value": "incidentTypeDescription",
364
+ "required": false,
365
+ "enabled": true,
366
+ "transformationRequired": false,
367
+ },
368
+ {
369
+ "key": "units",
370
+ "value": "assignedUnits",
371
+ "required": false,
372
+ "enabled": true,
373
+ "transformationRequired": true,
374
+ },
375
+ {
376
+ "key": "Longitude",
377
+ "value": "longitude",
378
+ "required": false,
379
+ "enabled": true,
380
+ "transformationRequired": false,
381
+ },
382
+ {
383
+ "key": "Latitude",
384
+ "value": "latitude",
385
+ "required": false,
386
+ "enabled": true,
387
+ "transformationRequired": false,
388
+ },
389
+ {
390
+ "key": "full_address",
391
+ "value": "fullAddress",
392
+ "required": false,
393
+ "enabled": true,
394
+ "transformationRequired": false,
395
+ },
396
+ {
397
+ "key": "EntryDateTime",
398
+ "value": "alarmDatetime", // cspell:disable-line
399
+ "required": false,
400
+ "enabled": true,
401
+ "transformationRequired": false,
402
+ }
403
+ ];
404
+
405
+ // If any of the following fields are updated/added/deleted,
406
+ // make sure to update the database records, before/after release (script/query)
407
+ const FireMapperConfigurationDefault = {
408
+ enabled: false,
409
+ layerRefreshInterval: 15,
410
+ proLicenseCount: 0,
411
+ host: "",
412
+ layer: [
413
+ {
414
+ name: "FireMapper - Symbols",
415
+ pathname: "/api/rest/services/features/FeatureServer/0",
416
+ },
417
+ {
418
+ name: "FireMapper - Lines",
419
+ pathname: "/api/rest/services/features/FeatureServer/1",
420
+ },
421
+ {
422
+ name: "FireMapper - Photos",
423
+ pathname: "/api/rest/services/features/FeatureServer/2",
424
+ },
425
+ {
426
+ name: "FireMapper - Areas",
427
+ pathname: "/api/rest/services/features/FeatureServer/3",
428
+ },
429
+ {
430
+ name: "FireMapper - PDFs",
431
+ pathname: "/api/rest/services/features/FeatureServer/4",
432
+ },
433
+ {
434
+ name: "FireMapper - Labels",
435
+ pathname: "/api/rest/services/features/FeatureServer/5",
436
+ },
437
+ ],
438
+ staticLayer: [],
439
+ };
440
+
441
+ const LicensingDefault = {
442
+ "tcPro2Way": 0,
443
+ "tcPro1Way": 0,
444
+ "tcMobile": 0,
445
+ "tcWeb": 0,
446
+ "fireMapperPro": 0,
447
+ "sendToCAD": 0,
448
+ "tcStreams": 0
449
+ };
450
+
451
+ const SafetyPriorityKeywordDefault = [
452
+ {
453
+ "keywords": [],
454
+ "priority": 0,
455
+ "hexColor": "FF3B30"
456
+ },
457
+ {
458
+ "keywords": [],
459
+ "priority": 1,
460
+ "hexColor": "FEC309"
461
+ },
462
+ {
463
+ "keywords": [],
464
+ "priority": 2,
465
+ "hexColor": "0A60FF"
466
+ }
467
+ ];
468
+
469
+ const FirstArrivingConfigDefault = {
470
+ "token": "",
471
+ "apiUrl": "",
472
+ };
473
+
474
+ const IntterraConfigDefault = {
475
+ "enabled": false,
476
+ "connections": [],
477
+ };
478
+
479
+ const SkymiraConfigDefault = {
480
+ "enabled": false,
481
+ "token": "",
482
+ "locationsUrl": "",
483
+ };
484
+
485
+ const Mark43ConfigDefault = {
486
+ "baseUrl": "",
487
+ "authToken": "",
488
+ "apiToken": "",
489
+ "userId": 0,
490
+ "enabled": false,
491
+ };
492
+
493
+ const SimpleSenseConfigDefault = {
494
+ "token": "",
495
+ };
496
+
497
+ const WebDisclaimerDefault = {
498
+ "message": "",
499
+ "enabled": false
500
+ };
501
+
502
+ const RestrictedCommentsDefault = {
503
+ enabled: false,
504
+ callTypesAllowed: [],
505
+ statusesAllowed: [],
506
+ restrictedFields: [
507
+ "LocationComment",
508
+ "AgencyIncidentCallTypeDescription",
509
+ "Comment"
510
+ ],
511
+ restrictedMessage: "RESTRICTED"
512
+ };
513
+
514
+ const SamsaraConfigurationDefault = {
515
+ enabled: false,
516
+ token: "",
517
+ };
518
+
519
+
520
+ export default async function DepartmentModule(mongoose: MongooseModule) {
521
+ const { Schema } = mongoose;
21
522
  const PubNubToken = PubNubTokenSchema(mongoose);
22
523
  const Color = ColorModule(mongoose);
23
524
 
24
- const Mark43StatusConfig = createSchema(Schema, {
525
+ const Mark43StatusConfig = new Schema<Mark43StatusConfigType>({
25
526
  TimeDispatched: {
26
527
  type: [String],
27
528
  default: []
@@ -55,17 +556,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
55
556
  id: false,
56
557
  });
57
558
 
58
- const Mark43StatusConfigDefault = {
59
- TimeDispatched: ["D"],
60
- TimeEnroute: ["EN"],
61
- TimeStaged: ["ST"],
62
- TimeCleared: ["AV", "AVF", "AOR"],
63
- TimeAtHospital: ["AH"],
64
- TimeTransporting: ["T", "EH"],
65
- TimeArrived: ["ATS", "A"],
66
- };
67
-
68
- const Mark43ProcessLocationConfig = createSchema(Schema, {
559
+ const Mark43ProcessLocationConfig = new Schema<Mark43ProcessLocationConfigType>({
69
560
  enabled: {
70
561
  type: Boolean,
71
562
  default: false,
@@ -79,8 +570,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
79
570
  id: false,
80
571
  });
81
572
 
82
-
83
- const Mark43ProcessCommentConfig = createSchema(Schema, {
573
+ const Mark43ProcessCommentConfig = new Schema<Mark43ProcessCommentConfigType>({
84
574
  enabled: {
85
575
  type: Boolean,
86
576
  default: false,
@@ -102,7 +592,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
102
592
  id: false,
103
593
  });
104
594
 
105
- const Mark43ProcessVehicleStatusConfig = createSchema(Schema, {
595
+ const Mark43ProcessVehicleStatusConfig = new Schema<Mark43ProcessVehicleStatusConfigType>({
106
596
  enabled: {
107
597
  type: Boolean,
108
598
  default: false,
@@ -120,7 +610,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
120
610
  id: false,
121
611
  });
122
612
 
123
- const Mark43ProcessConfig = createSchema(Schema, {
613
+ const Mark43ProcessConfig = new Schema<Mark43ProcessConfigType>({
124
614
  location: {
125
615
  type: Mark43ProcessLocationConfig,
126
616
  },
@@ -135,7 +625,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
135
625
  id: false,
136
626
  });
137
627
 
138
- const Mark43Config = createSchema(Schema, {
628
+ const Mark43Config = new Schema<Mark43ConfigType>({
139
629
  baseUrl: {
140
630
  type: String,
141
631
  default: "",
@@ -168,59 +658,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
168
658
  id: false,
169
659
  });
170
660
 
171
- const IntterraFieldsDefault = [
172
- {
173
- "key": "IncidentNumber",
174
- "value": "incidentId",
175
- "required": true,
176
- "enabled": true,
177
- "transformationRequired": false,
178
- },
179
- {
180
- "key": "AgencyIncidentCallTypeDescription",
181
- "value": "incidentTypeDescription",
182
- "required": false,
183
- "enabled": true,
184
- "transformationRequired": false,
185
- },
186
- {
187
- "key": "units",
188
- "value": "assignedUnits",
189
- "required": false,
190
- "enabled": true,
191
- "transformationRequired": true,
192
- },
193
- {
194
- "key": "Longitude",
195
- "value": "longitude",
196
- "required": false,
197
- "enabled": true,
198
- "transformationRequired": false,
199
- },
200
- {
201
- "key": "Latitude",
202
- "value": "latitude",
203
- "required": false,
204
- "enabled": true,
205
- "transformationRequired": false,
206
- },
207
- {
208
- "key": "full_address",
209
- "value": "fullAddress",
210
- "required": false,
211
- "enabled": true,
212
- "transformationRequired": false,
213
- },
214
- {
215
- "key": "EntryDateTime",
216
- "value": "alarmDatetime", // cspell:disable-line
217
- "required": false,
218
- "enabled": true,
219
- "transformationRequired": false,
220
- }
221
- ];
222
-
223
- const IntterraFields = createSchema(Schema, {
661
+ const IntterraFields = new Schema<IntterraFieldsType>({
224
662
  key: {
225
663
  type: String,
226
664
  default: "",
@@ -246,7 +684,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
246
684
  id: false,
247
685
  });
248
686
 
249
- const IntterraConnection = createSchema(Schema, {
687
+ const IntterraConnection = new Schema<IntterraConnectionType>({
250
688
  active: {
251
689
  type: Boolean,
252
690
  default: false,
@@ -280,7 +718,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
280
718
  id: false,
281
719
  });
282
720
 
283
- const IntterraConfig = createSchema(Schema, {
721
+ const IntterraConfig = new Schema<IntterraConfigType>({
284
722
  enabled: {
285
723
  type: Boolean,
286
724
  default: false,
@@ -294,7 +732,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
294
732
  id: false,
295
733
  });
296
734
 
297
- const SkymiraConfig = createSchema(Schema, {
735
+ const SkymiraConfig = new Schema<SkymiraConfigType>({
298
736
  enabled: {
299
737
  type: Boolean,
300
738
  default: false,
@@ -312,7 +750,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
312
750
  id: false,
313
751
  });
314
752
 
315
- const SkytracConfig = createSchema(Schema, {
753
+ const SkytracConfig = new Schema<SkytracConfigType>({
316
754
  enabled: {
317
755
  type: Boolean,
318
756
  default: false,
@@ -342,7 +780,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
342
780
  id: false,
343
781
  });
344
782
 
345
- const SimpleSenseConfig = createSchema(Schema, {
783
+ const SimpleSenseConfig = new Schema<SimpleSenseConfigType>({
346
784
  token: {
347
785
  type: String,
348
786
  default: "",
@@ -352,7 +790,8 @@ export async function DepartmentModule(mongoose: MongooseModule) {
352
790
  id: false,
353
791
  });
354
792
 
355
- const StatusMappingObjectConfig = createSchema(Schema, {
793
+
794
+ const StatusMappingObjectConfig = new Schema<StatusMappingObjectConfigType>({
356
795
  status: {
357
796
  type: String,
358
797
  default: "",
@@ -366,7 +805,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
366
805
  id: false,
367
806
  });
368
807
 
369
- const StatusMappingConfig = createSchema(Schema, {
808
+ const StatusMappingConfig = new Schema<StatusMappingConfigType>({
370
809
  TimeDispatched: {
371
810
  type: StatusMappingObjectConfig,
372
811
  },
@@ -439,7 +878,8 @@ export async function DepartmentModule(mongoose: MongooseModule) {
439
878
  }
440
879
  };
441
880
 
442
- const IncidentVehicleStatusConfig = createSchema(Schema, {
881
+
882
+ const IncidentVehicleStatusConfig = new Schema<IncidentVehicleStatusConfigType>({
443
883
  enabled: {
444
884
  type: Boolean,
445
885
  default: false,
@@ -457,7 +897,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
457
897
  id: false,
458
898
  });
459
899
 
460
- const FirstArrivingConfig = createSchema(Schema, {
900
+ const FirstArrivingConfig = new Schema<FirstArrivingConfigType>({
461
901
  token: {
462
902
  type: String,
463
903
  default: "",
@@ -472,7 +912,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
472
912
  });
473
913
 
474
914
 
475
- const SafetyPriorityKeyword = createSchema(Schema, {
915
+ const SafetyPriorityKeyword = new Schema<SafetyPriorityKeywordType>({
476
916
  priority: {
477
917
  type: Number,
478
918
  default: 6,
@@ -489,7 +929,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
489
929
  id: false,
490
930
  });
491
931
 
492
- const WebDisclaimer = createSchema(Schema, {
932
+ const WebDisclaimer = new Schema<WebDisclaimerType>({
493
933
  message: {
494
934
  type: String,
495
935
  default: "",
@@ -503,7 +943,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
503
943
  id: false,
504
944
  });
505
945
 
506
- const AudioStream = createSchema(Schema, {
946
+ const AudioStream = new Schema<AudioStreamType>({
507
947
  // eg. Central Dispatch Talk Group or also Available on 89.5 MHz
508
948
  description: {
509
949
  type: String,
@@ -527,7 +967,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
527
967
  id: false,
528
968
  });
529
969
 
530
- const AudioStreamGroup = createSchema(Schema, {
970
+ const AudioStreamGroup = new Schema<AudioStreamGroupType>({
531
971
  group: {
532
972
  type: String,
533
973
  default: "",
@@ -545,7 +985,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
545
985
  id: false,
546
986
  });
547
987
 
548
- const RestrictedComments = createSchema(Schema, {
988
+ const RestrictedComments = new Schema<RestrictedCommentsType>({
549
989
  enabled: {
550
990
  type: Boolean,
551
991
  default: false,
@@ -571,7 +1011,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
571
1011
  id: false,
572
1012
  });
573
1013
 
574
- const CustomButtons = createSchema(Schema, {
1014
+ const CustomButtons = new Schema<CustomButtonsType>({
575
1015
  name: {
576
1016
  type: String,
577
1017
  default: "",
@@ -605,7 +1045,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
605
1045
  id: false,
606
1046
  });
607
1047
 
608
- const FireMapperLayer = createSchema(Schema, {
1048
+ const FireMapperLayer = new Schema<FireMapperLayerType>({
609
1049
  pathname: {
610
1050
  type: String,
611
1051
  default: "", // Eg. /api/rest/services/features/FeatureServer/0 (including 0)
@@ -619,7 +1059,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
619
1059
  id: false,
620
1060
  });
621
1061
 
622
- const FireMapperOutline = createSchema(Schema, {
1062
+ const FireMapperOutline = new Schema<FireMapperOutlineType>({
623
1063
  uuid: {
624
1064
  type: String,
625
1065
  default: "",
@@ -633,7 +1073,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
633
1073
  id: false,
634
1074
  });
635
1075
 
636
- const SamsaraConfiguration = createSchema(Schema, {
1076
+ const SamsaraConfiguration = new Schema<SamsaraConfigurationType>({
637
1077
  enabled: {
638
1078
  type: Boolean,
639
1079
  default: false,
@@ -647,12 +1087,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
647
1087
  id: false,
648
1088
  });
649
1089
 
650
- const SamsaraConfigurationDefault = {
651
- enabled: false,
652
- token: "",
653
- };
654
-
655
- const FireMapperConfiguration = createSchema(Schema, {
1090
+ const FireMapperConfiguration = new Schema<FireMapperConfigurationType>({
656
1091
  enabled: {
657
1092
  type: Boolean,
658
1093
  default: false,
@@ -688,43 +1123,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
688
1123
  id: false,
689
1124
  });
690
1125
 
691
- // If any of the following fields are updated/added/deleted,
692
- // make sure to update the database records, before/after release (script/query)
693
- const FireMapperConfigurationDefault = {
694
- enabled: false,
695
- layerRefreshInterval: 15,
696
- proLicenseCount: 0,
697
- host: "",
698
- layer: [
699
- {
700
- name: "FireMapper - Symbols",
701
- pathname: "/api/rest/services/features/FeatureServer/0",
702
- },
703
- {
704
- name: "FireMapper - Lines",
705
- pathname: "/api/rest/services/features/FeatureServer/1",
706
- },
707
- {
708
- name: "FireMapper - Photos",
709
- pathname: "/api/rest/services/features/FeatureServer/2",
710
- },
711
- {
712
- name: "FireMapper - Areas",
713
- pathname: "/api/rest/services/features/FeatureServer/3",
714
- },
715
- {
716
- name: "FireMapper - PDFs",
717
- pathname: "/api/rest/services/features/FeatureServer/4",
718
- },
719
- {
720
- name: "FireMapper - Labels",
721
- pathname: "/api/rest/services/features/FeatureServer/5",
722
- },
723
- ],
724
- staticLayer: [],
725
- };
726
-
727
- const Licensing = createSchema(Schema, {
1126
+ const Licensing = new Schema<LicensingType>({
728
1127
  tcPro2Way: {
729
1128
  type: Number,
730
1129
  default: 0,
@@ -758,80 +1157,17 @@ export async function DepartmentModule(mongoose: MongooseModule) {
758
1157
  id: false,
759
1158
  });
760
1159
 
761
- const LicensingDefault = {
762
- "tcPro2Way": 0,
763
- "tcPro1Way": 0,
764
- "tcMobile": 0,
765
- "tcWeb": 0,
766
- "fireMapperPro": 0,
767
- "sendToCAD": 0,
768
- "tcStreams": 0
769
- };
770
1160
 
771
- const SafetyPriorityKeywordDefault = [
772
- {
773
- "keywords": [],
774
- "priority": 0,
775
- "hexColor": "FF3B30"
776
- },
777
- {
778
- "keywords": [],
779
- "priority": 1,
780
- "hexColor": "FEC309"
781
- },
782
- {
783
- "keywords": [],
784
- "priority": 2,
785
- "hexColor": "0A60FF"
786
- }
787
- ];
788
1161
 
789
- const FirstArrivingConfigDefault = {
790
- "token": "",
791
- "apiUrl": "",
792
- };
793
1162
 
794
- const IntterraConfigDefault = {
795
- "enabled": false,
796
- "connections": [],
797
- };
798
1163
 
799
- const SkymiraConfigDefault = {
800
- "enabled": false,
801
- "token": "",
802
- "locationsUrl": "",
803
- };
804
1164
 
805
- const Mark43ConfigDefault = {
806
- "baseUrl": "",
807
- "authToken": "",
808
- "apiToken": "",
809
- "userId": 0,
810
- "enabled": false,
811
- };
812
1165
 
813
- const SimpleSenseConfigDefault = {
814
- "token": "",
815
- };
816
1166
 
817
- const WebDisclaimerDefault = {
818
- "message": "",
819
- "enabled": false
820
- };
821
1167
 
822
- const RestrictedCommentsDefault = {
823
- enabled: false,
824
- callTypesAllowed: [],
825
- statusesAllowed: [],
826
- restrictedFields: [
827
- "LocationComment",
828
- "AgencyIncidentCallTypeDescription",
829
- "Comment"
830
- ],
831
- restrictedMessage: "RESTRICTED"
832
- };
833
1168
 
834
- const IncidentType = createSchema(Schema, {
1169
+
1170
+ const IncidentType = new Schema<IncidentTypeType>({
835
1171
  name: {
836
1172
  type: String,
837
1173
  default: "Any",
@@ -860,7 +1196,7 @@ export async function DepartmentModule(mongoose: MongooseModule) {
860
1196
  id: false,
861
1197
  });
862
1198
 
863
- const ShareIncidentRule = createSchema(Schema, {
1199
+ const ShareIncidentRule = new Schema<ShareIncidentRuleType>({
864
1200
  ruleType: {
865
1201
  type: String,
866
1202
  default: "",
@@ -883,9 +1219,9 @@ export async function DepartmentModule(mongoose: MongooseModule) {
883
1219
  });
884
1220
 
885
1221
  // Main schema
886
- const modelSchema = createSchema(Schema, {
1222
+ const modelSchema = new Schema<Department>({
887
1223
  _id: {
888
- type: Types.ObjectId,
1224
+ type: Schema.Types.ObjectId,
889
1225
  auto: true,
890
1226
  },
891
1227
  uuid: {
@@ -1366,7 +1702,6 @@ export async function DepartmentModule(mongoose: MongooseModule) {
1366
1702
  default: [],
1367
1703
  },
1368
1704
  }, {
1369
- collection: "massive_admin",
1370
1705
  });
1371
1706
 
1372
1707
  modelSchema.set("autoIndex", false);
@@ -1374,23 +1709,19 @@ export async function DepartmentModule(mongoose: MongooseModule) {
1374
1709
  updatedAt: "modified",
1375
1710
  });
1376
1711
 
1712
+ modelSchema.virtual("id").get(function (this: Department) {
1713
+ return this._id.toHexString();
1714
+ });
1715
+
1377
1716
  modelSchema.set("toJSON", {
1378
1717
  virtuals: true,
1379
1718
  versionKey: false,
1380
- transform(doc: DocumentTypeFromSchema<typeof modelSchema>, ret: FieldsOfDocument<DocumentTypeFromSchema<typeof modelSchema>>) {
1381
- ret.id = ret._id;
1382
- },
1383
1719
  });
1384
1720
 
1385
- modelSchema.virtual("id").get(function(this: DocumentTypeFromSchema<typeof modelSchema>) {
1386
- return this._id.toHexString();
1387
- });
1388
1721
 
1389
1722
  modelSchema.plugin(mongooseLeanVirtuals);
1390
1723
 
1391
- return createModel(mongoose, "Department", modelSchema);
1724
+ return mongoose.model<Department>("Department", modelSchema, "massive_admin", { overwriteModels: true });
1392
1725
  }
1393
1726
 
1394
- export interface Department extends ItemTypeFromTypeSchemaFunction<typeof DepartmentModule> { }
1395
- export interface DepartmentModel extends ModelTypeFromTypeSchemaFunction<Department> { }
1396
- export default DepartmentModule as ReplaceModelReturnType<typeof DepartmentModule, DepartmentModel>;
1727
+ export interface DepartmentModel extends Model<Department> { }