tabletcommand-backend-models 5.39.5 → 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 (387) 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 +5 -8
  90. package/build/models/remote-log-stream.js.map +1 -1
  91. package/build/models/remote-log.js +5 -8
  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 -52
  229. package/definitions/models/remote-log-stream.d.ts.map +1 -1
  230. package/definitions/models/remote-log.d.ts +52 -53
  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 +40 -15
  322. package/src/models/remote-log.ts +42 -15
  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/src/tsconfig.json +1 -0
  347. package/test/0index.js +9 -8
  348. package/test/action-log.js +18 -28
  349. package/test/agency.js +15 -27
  350. package/test/arcgis-group.js +6 -14
  351. package/test/assignment.js +14 -22
  352. package/test/battalion.js +14 -24
  353. package/test/cad-incident-block.js +13 -19
  354. package/test/cad-incident.js +70 -77
  355. package/test/cad-simulation.js +12 -20
  356. package/test/cad-status-map.js +13 -21
  357. package/test/cad-status.js +33 -42
  358. package/test/cad-vehicle-status-history.js +17 -26
  359. package/test/cad-vehicle-status.js +23 -32
  360. package/test/cad-vehicle.js +18 -27
  361. package/test/checklist-item.js +20 -29
  362. package/test/checklist.js +18 -25
  363. package/test/csv-import.js +22 -29
  364. package/test/department.js +62 -66
  365. package/test/device-mapping.js +18 -27
  366. package/test/esri.js +28 -34
  367. package/test/gst-mapping.js +17 -26
  368. package/test/incident-event.js +21 -28
  369. package/test/incident-notified.js +16 -25
  370. package/test/incident-takeover.js +18 -27
  371. package/test/job-log.js +16 -25
  372. package/test/location.js +30 -37
  373. package/test/mail-log.js +24 -33
  374. package/test/managed-incident.js +57 -66
  375. package/test/mark43-incident-retry.js +13 -22
  376. package/test/message.js +18 -27
  377. package/test/mock.js +20 -20
  378. package/test/monitor.js +14 -21
  379. package/test/personnel-import.js +29 -36
  380. package/test/rate-limit.js +12 -21
  381. package/test/release-note.js +5 -11
  382. package/test/session.js +23 -32
  383. package/test/template.js +19 -28
  384. package/test/user-device.js +30 -37
  385. package/test/user-registration.js +24 -33
  386. package/test/user.js +26 -35
  387. package/test/validation-report.js +10 -17
@@ -1,16 +1,62 @@
1
1
  import {
2
2
  MongooseModule,
3
- createSchema,
4
3
  currentDate,
5
4
  } from "../../helpers";
6
5
 
7
6
  // Properties shared between CAD and Managed Incident
8
7
  // They are copied on iOS
9
8
 
9
+ export interface CADPersonSchemaType {
10
+ PersonnelID: string,
11
+ PersonnelName: string,
12
+ PersonnelRank: string,
13
+ PersonnelWorkCode: string,
14
+ PersonnelNote: string,
15
+ }
16
+
17
+ export interface RadioChannelSchemaType extends Record<string, unknown> {
18
+ name: string,
19
+ channel: string,
20
+ url: string,
21
+ channelDescription: string,
22
+ }
23
+
24
+ export interface RecordSchemaType {
25
+ name: string,
26
+ value: string,
27
+ }
28
+
29
+ export interface ReportNumberSchemaType {
30
+ name: string,
31
+ number: string,
32
+ }
33
+
34
+ export interface ShareReasonSchemaType {
35
+ name: string,
36
+ date: Date,
37
+ }
38
+
39
+ export interface SharedToSchemaType extends Record<string, unknown> {
40
+ departmentId: string,
41
+ name: string,
42
+ startAt: Date,
43
+ expireAt: Date,
44
+ active: boolean,
45
+ reasons: ShareReasonSchemaType[],
46
+ }
47
+
48
+ export interface SharedSourceSchemaType extends Record<string, unknown> {
49
+ name: string,
50
+ isExternal: boolean,
51
+ startAt?: Date,
52
+ expireAt?: Date,
53
+ reasons: ShareReasonSchemaType[]
54
+ }
55
+
10
56
  export function CADPersonSchema(mongoose: MongooseModule) {
11
57
  const { Schema } = mongoose;
12
58
 
13
- const Person = createSchema(Schema, {
59
+ const Person = new Schema<CADPersonSchemaType>({
14
60
  PersonnelID: {
15
61
  type: String,
16
62
  },
@@ -40,7 +86,7 @@ export function CADPersonSchema(mongoose: MongooseModule) {
40
86
  export function RadioChannelSchema(mongoose: MongooseModule) {
41
87
  const { Schema } = mongoose;
42
88
 
43
- const RadioChannel = createSchema(Schema, {
89
+ const RadioChannel = new Schema<RadioChannelSchemaType>({
44
90
  name: {
45
91
  type: String,
46
92
  default: "",
@@ -71,7 +117,7 @@ export function RadioChannelSchema(mongoose: MongooseModule) {
71
117
  export function RecordSchema(mongoose: MongooseModule) {
72
118
  const { Schema } = mongoose;
73
119
 
74
- const Record = createSchema(Schema, {
120
+ const Record = new Schema<RecordSchemaType>({
75
121
  name: {
76
122
  type: String,
77
123
  default: ""
@@ -94,7 +140,7 @@ export function RecordSchema(mongoose: MongooseModule) {
94
140
  export function ReportNumberSchema(mongoose: MongooseModule) {
95
141
  const { Schema } = mongoose;
96
142
 
97
- const ReportNumber = createSchema(Schema, {
143
+ const ReportNumber = new Schema<ReportNumberSchemaType>({
98
144
  name: {
99
145
  type: String,
100
146
  default: "",
@@ -117,7 +163,7 @@ export function ReportNumberSchema(mongoose: MongooseModule) {
117
163
  export function ShareReasonSchema(mongoose: MongooseModule) {
118
164
  const { Schema } = mongoose;
119
165
 
120
- const ShareReason = createSchema(Schema, {
166
+ const ShareReason = new Schema<ShareReasonSchemaType>({
121
167
  name: {
122
168
  type: String,
123
169
  default: "",
@@ -141,7 +187,7 @@ export function SharedToSchema(mongoose: MongooseModule) {
141
187
  const { Schema } = mongoose;
142
188
  const ShareReason = ShareReasonSchema(mongoose);
143
189
 
144
- const SharedTo = createSchema(Schema, {
190
+ const SharedTo = new Schema<SharedToSchemaType>({
145
191
  departmentId: {
146
192
  type: String,
147
193
  default: "",
@@ -182,7 +228,7 @@ export function SharedSourceSchema(mongoose: MongooseModule) {
182
228
  const { Schema } = mongoose;
183
229
  const ShareReason = ShareReasonSchema(mongoose);
184
230
 
185
- const SharedSource = createSchema(Schema, {
231
+ const SharedSource = new Schema<SharedSourceSchemaType>({
186
232
  // Department Name (always matches record .departmentId)
187
233
  name: {
188
234
  type: String,
@@ -1,13 +1,20 @@
1
1
  import {
2
2
  MongooseModule,
3
- createSchema,
4
3
  currentDate,
5
4
  } from "../../helpers";
6
5
 
6
+ export interface ValidationErrorItemSchemaType {
7
+ message: string,
8
+ firstSeenAt: Date,
9
+ lastSeenAt: Date,
10
+ clearedAt: Date,
11
+ payload: object,
12
+ }
13
+
7
14
  export default function ValidationErrorItemSchema(mongoose: MongooseModule) {
8
15
  const { Schema } = mongoose;
9
16
 
10
- const Item = createSchema(Schema, {
17
+ const Item = new Schema<ValidationErrorItemSchemaType>({
11
18
  message: {
12
19
  type: String,
13
20
  default: "",
@@ -1,27 +1,41 @@
1
1
  import {
2
- createModel,
3
- createSchema,
4
- DocumentTypeFromSchema,
5
- FieldsOfDocument,
6
- ItemTypeFromTypeSchemaFunction,
7
- ModelTypeFromTypeSchemaFunction,
8
2
  MongooseModule,
9
- ReplaceModelReturnType,
10
3
  } from "../helpers";
11
4
  import * as uuid from "uuid";
12
5
 
13
- import OAuthSchema from "./schema/oauth";
6
+ import OAuthSchema, { OAuthSchemaType } from "./schema/oauth";
7
+ import { Model } from "mongoose";
14
8
 
15
- export async function SessionModule(mongoose: MongooseModule) {
9
+ export interface Session {
10
+ _id: string,
11
+ id?: string,
12
+ nick: string,
13
+ email: string,
14
+ user: string,
15
+ active: boolean,
16
+ token: string,
17
+ source: string,
18
+ departmentId: string,
19
+ why: string,
20
+ when: string,
21
+ ended: string,
22
+ userAgent: string,
23
+ remoteAddress: string,
24
+ deviceId: string,
25
+ authSource: string,
26
+ oAuth: OAuthSchemaType,
27
+ }
28
+
29
+ export default async function SessionModule(mongoose: MongooseModule) {
16
30
  const Schema = mongoose.Schema;
17
31
  const OAuthToken = OAuthSchema(mongoose);
18
32
 
19
- function requiredButAllowEmptyString(this: { myField: unknown }) {
33
+ function requiredButAllowEmptyString(this: Session) {
20
34
  // Workaround to set required, and allow empty id
21
- return typeof this.myField === "string";
35
+ return typeof this.departmentId === "string";
22
36
  }
23
37
 
24
- const modelSchema = createSchema(Schema, {
38
+ const modelSchema = new Schema<Session>({
25
39
  _id: {
26
40
  type: String,
27
41
  default: uuid.v4,
@@ -75,30 +89,24 @@ export async function SessionModule(mongoose: MongooseModule) {
75
89
  default: null,
76
90
  },
77
91
  }, {
78
- collection: "sys_login",
79
92
  });
80
93
  modelSchema.set("autoIndex", false);
81
94
 
82
- modelSchema.pre("save", function(next) {
83
- this._id = this.get("token") as string; // Copy _id from token
95
+ modelSchema.pre("save", function (next) {
96
+ this._id = this.get("token"); // Copy _id from token
84
97
  next();
85
98
  });
99
+ modelSchema.virtual("id").get(function (this: Session) {
100
+ return this._id.toString();
101
+ });
86
102
 
87
103
  modelSchema.set("toJSON", {
88
104
  virtuals: true,
89
105
  versionKey: false,
90
- transform(doc: DocumentTypeFromSchema<typeof modelSchema>, ret: FieldsOfDocument<DocumentTypeFromSchema<typeof modelSchema>>) {
91
- ret.id = ret._id;
92
- },
93
106
  });
94
107
 
95
- modelSchema.virtual("id").get(function(this: DocumentTypeFromSchema<typeof modelSchema>) {
96
- return this._id.toString();
97
- });
98
108
 
99
- return createModel(mongoose, "Session", modelSchema);
109
+ return mongoose.model<Session>("Session", modelSchema, "sys_login", { overwriteModels: true });
100
110
  }
101
111
 
102
- export interface Session extends ItemTypeFromTypeSchemaFunction<typeof SessionModule> { }
103
- export interface SessionModel extends ModelTypeFromTypeSchemaFunction<Session> { }
104
- export default SessionModule as ReplaceModelReturnType<typeof SessionModule, SessionModel>;
112
+ export interface SessionModel extends Model<Session> { }
@@ -1,20 +1,23 @@
1
+ import { Model, Types } from "mongoose";
1
2
  import {
2
- createModel,
3
- createSchema,
4
- ItemTypeFromTypeSchemaFunction,
5
- ModelTypeFromTypeSchemaFunction,
6
3
  MongooseDocument,
7
4
  MongooseModule,
8
- ReplaceModelReturnType,
9
5
  } from "../helpers";
10
6
  import * as mongooseLeanVirtuals from "mongoose-lean-virtuals";
11
7
 
12
- export async function SMTPUnhandledModule(mongoose: MongooseModule) {
13
- const { Schema, Types } = mongoose;
8
+ export interface SMTPUnhandled {
9
+ _id: Types.ObjectId,
10
+ id?: string,
11
+ email: string,
12
+ message: string,
13
+ }
14
+
15
+ export default async function SMTPUnhandledModule(mongoose: MongooseModule) {
16
+ const { Schema } = mongoose;
14
17
 
15
- const modelSchema = createSchema(Schema, {
18
+ const modelSchema = new Schema<SMTPUnhandled>({
16
19
  _id: {
17
- type: Types.ObjectId,
20
+ type: Schema.Types.ObjectId,
18
21
  auto: true,
19
22
  },
20
23
  email: {
@@ -28,23 +31,20 @@ export async function SMTPUnhandledModule(mongoose: MongooseModule) {
28
31
  required: true,
29
32
  },
30
33
  }, {
31
- collection: "massive_smtp_unhandled",
32
34
  });
33
35
  modelSchema.set("toJSON", {
34
36
  virtuals: true,
35
37
  versionKey: false,
36
38
  });
37
39
 
38
- modelSchema.virtual("id").get(function(this: MongooseDocument) {
40
+ modelSchema.virtual("id").get(function (this: MongooseDocument) {
39
41
  return this._id.toHexString();
40
42
  });
41
43
 
42
44
  modelSchema.plugin(mongooseLeanVirtuals);
43
45
  modelSchema.set("autoIndex", false);
44
46
 
45
- return createModel(mongoose, "SMTPUnhandled", modelSchema);
47
+ return mongoose.model<SMTPUnhandled>("SMTPUnhandled", modelSchema, "massive_smtp_unhandled", { overwriteModels: true });
46
48
  }
47
49
 
48
- export interface SMTPUnhandled extends ItemTypeFromTypeSchemaFunction<typeof SMTPUnhandledModule> { }
49
- export interface SMTPUnhandledModel extends ModelTypeFromTypeSchemaFunction<SMTPUnhandled> { }
50
- export default SMTPUnhandledModule as ReplaceModelReturnType<typeof SMTPUnhandledModule, SMTPUnhandledModel>;
50
+ export interface SMTPUnhandledModel extends Model<SMTPUnhandled> { }
@@ -1,23 +1,44 @@
1
1
  import * as uuid from "uuid";
2
2
 
3
3
  import {
4
- createModel,
5
- createSchema,
6
4
  currentDate,
7
- DocumentTypeFromSchema,
8
- ItemTypeFromTypeSchemaFunction,
9
- ModelFromSchema,
10
- ModelTypeFromTypeSchemaFunction,
11
- MongooseDocument,
12
5
  MongooseModule,
13
- ReplaceModelReturnType,
14
6
  retrieveCurrentUnixTime
15
7
  } from "../helpers";
8
+ import { Model, Types } from "mongoose";
9
+
10
+ interface ChecklistOptionType {
11
+ name: string,
12
+ position: number,
13
+ id: string,
14
+ }
15
+
16
+ interface GroupOptionType {
17
+ name: string,
18
+ position: number,
19
+ uuid: string,
20
+ }
21
+ export interface Template extends Record<string, unknown> {
22
+ _id: Types.ObjectId,
23
+ id?: string,
24
+ position: number,
25
+ userId: string,
26
+ uuid: string,
27
+ isMandatory: boolean,
28
+ modified_unix_date: number,
29
+ modified: Date,
30
+ departmentId: string,
31
+ active: boolean,
32
+ name: string,
33
+ checklist: ChecklistOptionType[],
34
+ group: GroupOptionType[],
35
+ agencyId: Types.ObjectId
36
+ }
16
37
 
17
38
  export function TemplateSchema(mongoose: MongooseModule) {
18
- const { Schema, Types } = mongoose;
39
+ const { Schema } = mongoose;
19
40
 
20
- const ChecklistOption = createSchema(Schema, {
41
+ const ChecklistOption = new Schema<ChecklistOptionType>({
21
42
  name: {
22
43
  type: String,
23
44
  default: "",
@@ -35,7 +56,7 @@ export function TemplateSchema(mongoose: MongooseModule) {
35
56
  id: false,
36
57
  });
37
58
 
38
- const GroupOption = createSchema(Schema, {
59
+ const GroupOption = new Schema<GroupOptionType>({
39
60
  name: {
40
61
  type: String,
41
62
  default: "",
@@ -53,9 +74,9 @@ export function TemplateSchema(mongoose: MongooseModule) {
53
74
  id: false,
54
75
  });
55
76
 
56
- const modelSchema = createSchema(Schema, {
77
+ const modelSchema = new Schema<Template>({
57
78
  _id: {
58
- type: Types.ObjectId,
79
+ type: Schema.Types.ObjectId,
59
80
  auto: true,
60
81
  },
61
82
  position: {
@@ -101,26 +122,25 @@ export function TemplateSchema(mongoose: MongooseModule) {
101
122
  default: []
102
123
  },
103
124
  agencyId: {
104
- type: Types.ObjectId,
125
+ type: Schema.Types.ObjectId,
105
126
  ref: "Agency",
106
127
  default: null,
107
128
  },
108
129
  }, {
109
- collection: "massive_template",
110
130
  });
111
131
  modelSchema.set("autoIndex", false);
132
+ modelSchema.virtual("id").get(function (this: Template) {
133
+ return this._id.toHexString();
134
+ });
135
+
112
136
  modelSchema.set("toJSON", {
113
137
  virtuals: true,
114
138
  versionKey: false,
115
- transform(doc: ModelFromSchema<typeof modelSchema>, ret: DocumentTypeFromSchema<typeof modelSchema>) {
139
+ transform(doc, ret) {
116
140
  strictSchema(doc.schema as typeof modelSchema, ret);
117
- ret.id = ret._id;
118
141
  },
119
142
  });
120
143
 
121
- modelSchema.virtual("id").get(function (this: MongooseDocument) {
122
- return this._id.toHexString();
123
- });
124
144
 
125
145
  function strictSchema(schema: typeof modelSchema, ret: Record<string, unknown>) {
126
146
  Object.keys(ret).forEach(function (element) {
@@ -139,11 +159,9 @@ export function TemplateSchema(mongoose: MongooseModule) {
139
159
  return modelSchema;
140
160
  }
141
161
 
142
- export async function TemplateModule(mongoose: MongooseModule) {
162
+ export default async function TemplateModule(mongoose: MongooseModule) {
143
163
  const modelSchema = TemplateSchema(mongoose);
144
- return createModel(mongoose, "Template", modelSchema);
164
+ return mongoose.model<Template>("Template", modelSchema, "massive_template", { overwriteModels: true });
145
165
  }
146
166
 
147
- export interface Template extends ItemTypeFromTypeSchemaFunction<typeof TemplateModule> { }
148
- export interface TemplateModel extends ModelTypeFromTypeSchemaFunction<Template> { }
149
- export default TemplateModule as ReplaceModelReturnType<typeof TemplateModule, TemplateModel>;
167
+ export interface TemplateModel extends Model<Template> { }
@@ -1,18 +1,68 @@
1
+ import { Model, Types } from "mongoose";
1
2
  import {
2
- createSchema,
3
- createModel,
4
3
  currentDate,
5
4
  MongooseModule,
6
5
  retrieveCurrentUnixTime,
7
- ItemTypeFromTypeSchemaFunction,
8
- ModelTypeFromTypeSchemaFunction,
9
- ReplaceModelReturnType,
10
6
  } from "../helpers";
11
7
 
12
- export async function UserDeviceModule(mongoose: MongooseModule) {
13
- const { Schema, Types } = mongoose;
8
+ interface UnitSettingType {
9
+ radioName: string,
10
+ notificationType: string,
11
+ notificationMode: string,
12
+ }
13
+ interface IncidentSettingType {
14
+ incidentType: string,
15
+ notificationType: string,
16
+ notificationMode: string,
17
+ }
18
+
19
+ interface DeviceSchemaType {
20
+ token: string,
21
+ env: string,
22
+ ver: string,
23
+ ua: string,
24
+ time: number,
25
+ t: Date,
26
+ drift: number,
27
+ channelId: string,
28
+ bundleIdentifier: string,
29
+ silentEnabled: boolean,
30
+ criticalAlertsEnabled: boolean,
31
+ session: string,
32
+ active: boolean,
33
+ offDuty: boolean,
34
+ }
35
+
36
+ interface SoundSchemaItemType {
37
+ sound: string,
38
+ soundType: string,
39
+ os: string,
40
+ }
41
+
42
+ interface SoundSchemaType {
43
+ ios: SoundSchemaItemType,
44
+ android: SoundSchemaItemType,
45
+ }
46
+
47
+ export interface UserDevice {
48
+ _id: Types.ObjectId,
49
+ userId: string,
50
+ departmentId: string,
51
+ devices: DeviceSchemaType[],
52
+ notificationCount: number,
53
+ notificationUnitSettings: UnitSettingType[],
54
+ notificationIncidentSettings: IncidentSettingType[],
55
+ notificationSounds: SoundSchemaType
56
+ offDuty: boolean,
57
+ criticalAlertsVolume: string,
58
+ allowInStaging: boolean,
59
+ restrictedCommentsEnabled: boolean,
60
+ }
61
+
62
+ export default async function UserDeviceModule(mongoose: MongooseModule) {
63
+ const { Schema } = mongoose;
14
64
 
15
- const UnitSetting = createSchema(Schema, {
65
+ const UnitSetting = new Schema<UnitSettingType>({
16
66
  radioName: {
17
67
  type: String,
18
68
  default: "",
@@ -30,7 +80,7 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
30
80
  id: false,
31
81
  });
32
82
 
33
- const IncidentSetting = createSchema(Schema, {
83
+ const IncidentSetting = new Schema<IncidentSettingType>({
34
84
  incidentType: {
35
85
  type: String,
36
86
  default: "",
@@ -48,7 +98,7 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
48
98
  id: false,
49
99
  });
50
100
 
51
- const deviceSchema = createSchema(Schema, {
101
+ const deviceSchema = new Schema<DeviceSchemaType>({
52
102
  token: {
53
103
  type: String,
54
104
  default: "",
@@ -115,7 +165,7 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
115
165
  id: false,
116
166
  });
117
167
 
118
- const soundSchemaItem = createSchema(Schema, {
168
+ const soundSchemaItem = new Schema<SoundSchemaItemType>({
119
169
  sound: {
120
170
  type: String,
121
171
  },
@@ -131,7 +181,7 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
131
181
  id: false,
132
182
  });
133
183
 
134
- const soundSchema = createSchema(Schema, {
184
+ const soundSchema = new Schema<SoundSchemaType>({
135
185
  ios: {
136
186
  type: soundSchemaItem,
137
187
  },
@@ -143,9 +193,9 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
143
193
  id: false,
144
194
  });
145
195
 
146
- const modelSchema = createSchema(Schema, {
196
+ const modelSchema = new Schema<UserDevice>({
147
197
  _id: {
148
- type: Types.ObjectId,
198
+ type: Schema.Types.ObjectId,
149
199
  auto: true,
150
200
  },
151
201
  userId: {
@@ -196,13 +246,10 @@ export async function UserDeviceModule(mongoose: MongooseModule) {
196
246
  default: false,
197
247
  },
198
248
  }, {
199
- collection: "massive_user_device",
200
249
  });
201
250
  modelSchema.set("autoIndex", false);
202
251
 
203
- return createModel(mongoose, "UserDevice", modelSchema);
252
+ return mongoose.model<UserDevice>("UserDevice", modelSchema, "massive_user_device", { overwriteModels: true });
204
253
  }
205
254
 
206
- export interface UserDevice extends ItemTypeFromTypeSchemaFunction<typeof UserDeviceModule> { }
207
- export interface UserDeviceModel extends ModelTypeFromTypeSchemaFunction<UserDevice> { }
208
- export default UserDeviceModule as ReplaceModelReturnType<typeof UserDeviceModule, UserDeviceModel>;
255
+ export interface UserDeviceModel extends Model<UserDevice> { }
@@ -1,17 +1,33 @@
1
+ import { Model } from "mongoose";
1
2
  import {
2
- createModel,
3
- createSchema,
4
3
  currentDate,
5
- ItemTypeFromTypeSchemaFunction,
6
- ModelTypeFromTypeSchemaFunction,
7
4
  MongooseModule,
8
- ReplaceModelReturnType,
9
5
  } from "../helpers";
10
6
 
11
- export async function UserRegistrationModule(mongoose: MongooseModule) {
7
+ export interface UserRegistration {
8
+ email: string,
9
+ name: string,
10
+ firstName: string,
11
+ lastName: string,
12
+ department: string,
13
+ title: string,
14
+ status: string,
15
+ modifiedDate: number,
16
+ modified: Date,
17
+ presentedAt: number,
18
+ managedIncidentsCount: number,
19
+ checklistsCount: number,
20
+ stage: string,
21
+ firstIncidentUnixTime: number,
22
+ lastIncidentLocation: string,
23
+ lastIncidentUnixTime: number,
24
+ syncedToHubSpot: boolean,
25
+ }
26
+
27
+ export default async function UserRegistrationModule(mongoose: MongooseModule) {
12
28
  const Schema = mongoose.Schema;
13
29
 
14
- const modelSchema = createSchema(Schema, {
30
+ const modelSchema = new Schema<UserRegistration>({
15
31
  email: {
16
32
  type: String,
17
33
  default: "",
@@ -87,13 +103,10 @@ export async function UserRegistrationModule(mongoose: MongooseModule) {
87
103
  default: false,
88
104
  },
89
105
  }, {
90
- collection: "massive_user_registration",
106
+ autoIndex: false
91
107
  });
92
- modelSchema.set("autoIndex", false);
93
108
 
94
- return createModel(mongoose, "UserRegistration", modelSchema);
109
+ return mongoose.model<UserRegistration>("UserRegistration", modelSchema, "massive_user_registration", { overwriteModels: true });
95
110
  }
96
111
 
97
- export interface UserRegistration extends ItemTypeFromTypeSchemaFunction<typeof UserRegistrationModule> { }
98
- export interface UserRegistrationModel extends ModelTypeFromTypeSchemaFunction<UserRegistration> { }
99
- export default UserRegistrationModule as ReplaceModelReturnType<typeof UserRegistrationModule, UserRegistrationModel>;
112
+ export interface UserRegistrationModel extends Model<UserRegistration> { }