@things-factory/compliance 0.0.0-stage → 10.1.254

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 (356) hide show
  1. package/dist-client/bootstrap.d.ts +2 -0
  2. package/dist-client/bootstrap.js +28 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/components/compliance-case-form.d.ts +42 -0
  5. package/dist-client/components/compliance-case-form.js +313 -0
  6. package/dist-client/components/compliance-case-form.js.map +1 -0
  7. package/dist-client/components/compliance-case-sheet.d.ts +35 -0
  8. package/dist-client/components/compliance-case-sheet.js +335 -0
  9. package/dist-client/components/compliance-case-sheet.js.map +1 -0
  10. package/dist-client/components/compliance-my-inventions.d.ts +17 -0
  11. package/dist-client/components/compliance-my-inventions.js +133 -0
  12. package/dist-client/components/compliance-my-inventions.js.map +1 -0
  13. package/dist-client/components/compliance-my-privacy-requests.d.ts +34 -0
  14. package/dist-client/components/compliance-my-privacy-requests.js +232 -0
  15. package/dist-client/components/compliance-my-privacy-requests.js.map +1 -0
  16. package/dist-client/components/compliance-my-reports.d.ts +19 -0
  17. package/dist-client/components/compliance-my-reports.js +137 -0
  18. package/dist-client/components/compliance-my-reports.js.map +1 -0
  19. package/dist-client/components/guide-link.d.ts +13 -0
  20. package/dist-client/components/guide-link.js +55 -0
  21. package/dist-client/components/guide-link.js.map +1 -0
  22. package/dist-client/components/invention-report-form.d.ts +30 -0
  23. package/dist-client/components/invention-report-form.js +188 -0
  24. package/dist-client/components/invention-report-form.js.map +1 -0
  25. package/dist-client/components/legal-todo.d.ts +10 -0
  26. package/dist-client/components/legal-todo.js +43 -0
  27. package/dist-client/components/legal-todo.js.map +1 -0
  28. package/dist-client/components/my-trainings.d.ts +18 -0
  29. package/dist-client/components/my-trainings.js +149 -0
  30. package/dist-client/components/my-trainings.js.map +1 -0
  31. package/dist-client/components/regulation-form.d.ts +26 -0
  32. package/dist-client/components/regulation-form.js +161 -0
  33. package/dist-client/components/regulation-form.js.map +1 -0
  34. package/dist-client/components/seal-use-form.d.ts +47 -0
  35. package/dist-client/components/seal-use-form.js +300 -0
  36. package/dist-client/components/seal-use-form.js.map +1 -0
  37. package/dist-client/components/training-attendance-form.d.ts +37 -0
  38. package/dist-client/components/training-attendance-form.js +186 -0
  39. package/dist-client/components/training-attendance-form.js.map +1 -0
  40. package/dist-client/components/training-certificate-form.d.ts +41 -0
  41. package/dist-client/components/training-certificate-form.js +198 -0
  42. package/dist-client/components/training-certificate-form.js.map +1 -0
  43. package/dist-client/components/training-session-form.d.ts +39 -0
  44. package/dist-client/components/training-session-form.js +270 -0
  45. package/dist-client/components/training-session-form.js.map +1 -0
  46. package/dist-client/components/training-setting-form.d.ts +45 -0
  47. package/dist-client/components/training-setting-form.js +175 -0
  48. package/dist-client/components/training-setting-form.js.map +1 -0
  49. package/dist-client/index.d.ts +4 -0
  50. package/dist-client/index.js +8 -0
  51. package/dist-client/index.js.map +1 -0
  52. package/dist-client/legal-record/dispute-calendar-source.d.ts +1 -0
  53. package/dist-client/legal-record/dispute-calendar-source.js +51 -0
  54. package/dist-client/legal-record/dispute-calendar-source.js.map +1 -0
  55. package/dist-client/legal-record/legal-child-grid.d.ts +31 -0
  56. package/dist-client/legal-record/legal-child-grid.js +76 -0
  57. package/dist-client/legal-record/legal-child-grid.js.map +1 -0
  58. package/dist-client/legal-record/legal-codes.d.ts +3 -0
  59. package/dist-client/legal-record/legal-codes.js +5 -0
  60. package/dist-client/legal-record/legal-codes.js.map +1 -0
  61. package/dist-client/legal-record/legal-grid.d.ts +59 -0
  62. package/dist-client/legal-record/legal-grid.js +68 -0
  63. package/dist-client/legal-record/legal-grid.js.map +1 -0
  64. package/dist-client/legal-record/legal-record-files.d.ts +26 -0
  65. package/dist-client/legal-record/legal-record-files.js +162 -0
  66. package/dist-client/legal-record/legal-record-files.js.map +1 -0
  67. package/dist-client/pages/compliance-case-list.d.ts +35 -0
  68. package/dist-client/pages/compliance-case-list.js +112 -0
  69. package/dist-client/pages/compliance-case-list.js.map +1 -0
  70. package/dist-client/pages/dispute-list.d.ts +57 -0
  71. package/dist-client/pages/dispute-list.js +156 -0
  72. package/dist-client/pages/dispute-list.js.map +1 -0
  73. package/dist-client/pages/invention-list.d.ts +57 -0
  74. package/dist-client/pages/invention-list.js +166 -0
  75. package/dist-client/pages/invention-list.js.map +1 -0
  76. package/dist-client/pages/legal-registration-list.d.ts +63 -0
  77. package/dist-client/pages/legal-registration-list.js +206 -0
  78. package/dist-client/pages/legal-registration-list.js.map +1 -0
  79. package/dist-client/pages/privacy-record-list.d.ts +52 -0
  80. package/dist-client/pages/privacy-record-list.js +225 -0
  81. package/dist-client/pages/privacy-record-list.js.map +1 -0
  82. package/dist-client/pages/regulation-detail.d.ts +43 -0
  83. package/dist-client/pages/regulation-detail.js +370 -0
  84. package/dist-client/pages/regulation-detail.js.map +1 -0
  85. package/dist-client/pages/regulation-list.d.ts +52 -0
  86. package/dist-client/pages/regulation-list.js +144 -0
  87. package/dist-client/pages/regulation-list.js.map +1 -0
  88. package/dist-client/pages/regulations.d.ts +49 -0
  89. package/dist-client/pages/regulations.js +412 -0
  90. package/dist-client/pages/regulations.js.map +1 -0
  91. package/dist-client/pages/seal-use-list.d.ts +57 -0
  92. package/dist-client/pages/seal-use-list.js +168 -0
  93. package/dist-client/pages/seal-use-list.js.map +1 -0
  94. package/dist-client/pages/training-list.d.ts +51 -0
  95. package/dist-client/pages/training-list.js +333 -0
  96. package/dist-client/pages/training-list.js.map +1 -0
  97. package/dist-client/regulation/regulation-fragments.d.ts +1 -0
  98. package/dist-client/regulation/regulation-fragments.js +37 -0
  99. package/dist-client/regulation/regulation-fragments.js.map +1 -0
  100. package/dist-client/regulation/regulation-guide.d.ts +19 -0
  101. package/dist-client/regulation/regulation-guide.js +48 -0
  102. package/dist-client/regulation/regulation-guide.js.map +1 -0
  103. package/dist-client/route.d.ts +1 -0
  104. package/dist-client/route.js +36 -0
  105. package/dist-client/route.js.map +1 -0
  106. package/dist-client/training-words.d.ts +11 -0
  107. package/dist-client/training-words.js +11 -0
  108. package/dist-client/training-words.js.map +1 -0
  109. package/dist-client/tsconfig.tsbuildinfo +1 -0
  110. package/dist-client/words.d.ts +15 -0
  111. package/dist-client/words.js +20 -0
  112. package/dist-client/words.js.map +1 -0
  113. package/dist-server/activities/index.d.ts +6 -0
  114. package/dist-server/activities/index.js +35 -0
  115. package/dist-server/activities/index.js.map +1 -0
  116. package/dist-server/activities/legal-todo-activity-names.d.ts +1 -0
  117. package/dist-server/activities/legal-todo-activity-names.js +5 -0
  118. package/dist-server/activities/legal-todo-activity-names.js.map +1 -0
  119. package/dist-server/activities/legal-todo-activity.d.ts +37 -0
  120. package/dist-server/activities/legal-todo-activity.js +41 -0
  121. package/dist-server/activities/legal-todo-activity.js.map +1 -0
  122. package/dist-server/activities/regulation-activity-names.d.ts +1 -0
  123. package/dist-server/activities/regulation-activity-names.js +5 -0
  124. package/dist-server/activities/regulation-activity-names.js.map +1 -0
  125. package/dist-server/activities/regulation-activity.d.ts +48 -0
  126. package/dist-server/activities/regulation-activity.js +47 -0
  127. package/dist-server/activities/regulation-activity.js.map +1 -0
  128. package/dist-server/activities/seal-use-activity-names.d.ts +2 -0
  129. package/dist-server/activities/seal-use-activity-names.js +6 -0
  130. package/dist-server/activities/seal-use-activity-names.js.map +1 -0
  131. package/dist-server/activities/seal-use-activity.d.ts +48 -0
  132. package/dist-server/activities/seal-use-activity.js +47 -0
  133. package/dist-server/activities/seal-use-activity.js.map +1 -0
  134. package/dist-server/index.d.ts +2 -0
  135. package/dist-server/index.js +21 -0
  136. package/dist-server/index.js.map +1 -0
  137. package/dist-server/role-tasks.d.ts +2 -0
  138. package/dist-server/role-tasks.js +28 -0
  139. package/dist-server/role-tasks.js.map +1 -0
  140. package/dist-server/service/common/correction.d.ts +32 -0
  141. package/dist-server/service/common/correction.js +98 -0
  142. package/dist-server/service/common/correction.js.map +1 -0
  143. package/dist-server/service/common/employee-reader.d.ts +11 -0
  144. package/dist-server/service/common/employee-reader.js +46 -0
  145. package/dist-server/service/common/employee-reader.js.map +1 -0
  146. package/dist-server/service/common/legal-todo.d.ts +19 -0
  147. package/dist-server/service/common/legal-todo.js +37 -0
  148. package/dist-server/service/common/legal-todo.js.map +1 -0
  149. package/dist-server/service/compliance-case/compliance-case-mutation.d.ts +9 -0
  150. package/dist-server/service/compliance-case/compliance-case-mutation.js +73 -0
  151. package/dist-server/service/compliance-case/compliance-case-mutation.js.map +1 -0
  152. package/dist-server/service/compliance-case/compliance-case-query.d.ts +28 -0
  153. package/dist-server/service/compliance-case/compliance-case-query.js +212 -0
  154. package/dist-server/service/compliance-case/compliance-case-query.js.map +1 -0
  155. package/dist-server/service/compliance-case/compliance-case-rules.d.ts +71 -0
  156. package/dist-server/service/compliance-case/compliance-case-rules.js +111 -0
  157. package/dist-server/service/compliance-case/compliance-case-rules.js.map +1 -0
  158. package/dist-server/service/compliance-case/compliance-case-service.d.ts +76 -0
  159. package/dist-server/service/compliance-case/compliance-case-service.js +425 -0
  160. package/dist-server/service/compliance-case/compliance-case-service.js.map +1 -0
  161. package/dist-server/service/compliance-case/compliance-case-type.d.ts +56 -0
  162. package/dist-server/service/compliance-case/compliance-case-type.js +200 -0
  163. package/dist-server/service/compliance-case/compliance-case-type.js.map +1 -0
  164. package/dist-server/service/compliance-case/compliance-case.d.ts +76 -0
  165. package/dist-server/service/compliance-case/compliance-case.js +260 -0
  166. package/dist-server/service/compliance-case/compliance-case.js.map +1 -0
  167. package/dist-server/service/compliance-case/index.d.ts +7 -0
  168. package/dist-server/service/compliance-case/index.js +17 -0
  169. package/dist-server/service/compliance-case/index.js.map +1 -0
  170. package/dist-server/service/dispute/dispute-mutation.d.ts +9 -0
  171. package/dist-server/service/dispute/dispute-mutation.js +64 -0
  172. package/dist-server/service/dispute/dispute-mutation.js.map +1 -0
  173. package/dist-server/service/dispute/dispute-query.d.ts +16 -0
  174. package/dist-server/service/dispute/dispute-query.js +124 -0
  175. package/dist-server/service/dispute/dispute-query.js.map +1 -0
  176. package/dist-server/service/dispute/dispute-rules.d.ts +20 -0
  177. package/dist-server/service/dispute/dispute-rules.js +42 -0
  178. package/dist-server/service/dispute/dispute-rules.js.map +1 -0
  179. package/dist-server/service/dispute/dispute-service.d.ts +17 -0
  180. package/dist-server/service/dispute/dispute-service.js +96 -0
  181. package/dist-server/service/dispute/dispute-service.js.map +1 -0
  182. package/dist-server/service/dispute/dispute-type.d.ts +39 -0
  183. package/dist-server/service/dispute/dispute-type.js +149 -0
  184. package/dist-server/service/dispute/dispute-type.js.map +1 -0
  185. package/dist-server/service/dispute/dispute.d.ts +48 -0
  186. package/dist-server/service/dispute/dispute.js +198 -0
  187. package/dist-server/service/dispute/dispute.js.map +1 -0
  188. package/dist-server/service/dispute/index.d.ts +5 -0
  189. package/dist-server/service/dispute/index.js +9 -0
  190. package/dist-server/service/dispute/index.js.map +1 -0
  191. package/dist-server/service/index.d.ts +46 -0
  192. package/dist-server/service/index.js +112 -0
  193. package/dist-server/service/index.js.map +1 -0
  194. package/dist-server/service/invention/index.d.ts +5 -0
  195. package/dist-server/service/invention/index.js +9 -0
  196. package/dist-server/service/invention/index.js.map +1 -0
  197. package/dist-server/service/invention/invention-mutation.d.ts +10 -0
  198. package/dist-server/service/invention/invention-mutation.js +79 -0
  199. package/dist-server/service/invention/invention-mutation.js.map +1 -0
  200. package/dist-server/service/invention/invention-query.d.ts +18 -0
  201. package/dist-server/service/invention/invention-query.js +141 -0
  202. package/dist-server/service/invention/invention-query.js.map +1 -0
  203. package/dist-server/service/invention/invention-rules.d.ts +28 -0
  204. package/dist-server/service/invention/invention-rules.js +54 -0
  205. package/dist-server/service/invention/invention-rules.js.map +1 -0
  206. package/dist-server/service/invention/invention-service.d.ts +25 -0
  207. package/dist-server/service/invention/invention-service.js +176 -0
  208. package/dist-server/service/invention/invention-service.js.map +1 -0
  209. package/dist-server/service/invention/invention-type.d.ts +34 -0
  210. package/dist-server/service/invention/invention-type.js +129 -0
  211. package/dist-server/service/invention/invention-type.js.map +1 -0
  212. package/dist-server/service/invention/invention.d.ts +55 -0
  213. package/dist-server/service/invention/invention.js +214 -0
  214. package/dist-server/service/invention/invention.js.map +1 -0
  215. package/dist-server/service/legal-record/attachment-readers.d.ts +1 -0
  216. package/dist-server/service/legal-record/attachment-readers.js +27 -0
  217. package/dist-server/service/legal-record/attachment-readers.js.map +1 -0
  218. package/dist-server/service/legal-record/days.d.ts +7 -0
  219. package/dist-server/service/legal-record/days.js +26 -0
  220. package/dist-server/service/legal-record/days.js.map +1 -0
  221. package/dist-server/service/legal-record/legal-record-support.d.ts +24 -0
  222. package/dist-server/service/legal-record/legal-record-support.js +51 -0
  223. package/dist-server/service/legal-record/legal-record-support.js.map +1 -0
  224. package/dist-server/service/legal-registration/centre-change-subscriber.d.ts +9 -0
  225. package/dist-server/service/legal-registration/centre-change-subscriber.js +50 -0
  226. package/dist-server/service/legal-registration/centre-change-subscriber.js.map +1 -0
  227. package/dist-server/service/legal-registration/index.d.ts +7 -0
  228. package/dist-server/service/legal-registration/index.js +11 -0
  229. package/dist-server/service/legal-registration/index.js.map +1 -0
  230. package/dist-server/service/legal-registration/legal-registration-mutation.d.ts +10 -0
  231. package/dist-server/service/legal-registration/legal-registration-mutation.js +77 -0
  232. package/dist-server/service/legal-registration/legal-registration-mutation.js.map +1 -0
  233. package/dist-server/service/legal-registration/legal-registration-query.d.ts +26 -0
  234. package/dist-server/service/legal-registration/legal-registration-query.js +199 -0
  235. package/dist-server/service/legal-registration/legal-registration-query.js.map +1 -0
  236. package/dist-server/service/legal-registration/legal-registration-rules.d.ts +80 -0
  237. package/dist-server/service/legal-registration/legal-registration-rules.js +106 -0
  238. package/dist-server/service/legal-registration/legal-registration-rules.js.map +1 -0
  239. package/dist-server/service/legal-registration/legal-registration-service.d.ts +37 -0
  240. package/dist-server/service/legal-registration/legal-registration-service.js +248 -0
  241. package/dist-server/service/legal-registration/legal-registration-service.js.map +1 -0
  242. package/dist-server/service/legal-registration/legal-registration-type.d.ts +55 -0
  243. package/dist-server/service/legal-registration/legal-registration-type.js +207 -0
  244. package/dist-server/service/legal-registration/legal-registration-type.js.map +1 -0
  245. package/dist-server/service/legal-registration/legal-registration.d.ts +76 -0
  246. package/dist-server/service/legal-registration/legal-registration.js +311 -0
  247. package/dist-server/service/legal-registration/legal-registration.js.map +1 -0
  248. package/dist-server/service/privacy-record/index.d.ts +5 -0
  249. package/dist-server/service/privacy-record/index.js +9 -0
  250. package/dist-server/service/privacy-record/index.js.map +1 -0
  251. package/dist-server/service/privacy-record/privacy-record-mutation.d.ts +7 -0
  252. package/dist-server/service/privacy-record/privacy-record-mutation.js +56 -0
  253. package/dist-server/service/privacy-record/privacy-record-mutation.js.map +1 -0
  254. package/dist-server/service/privacy-record/privacy-record-query.d.ts +18 -0
  255. package/dist-server/service/privacy-record/privacy-record-query.js +131 -0
  256. package/dist-server/service/privacy-record/privacy-record-query.js.map +1 -0
  257. package/dist-server/service/privacy-record/privacy-record-rules.d.ts +52 -0
  258. package/dist-server/service/privacy-record/privacy-record-rules.js +91 -0
  259. package/dist-server/service/privacy-record/privacy-record-rules.js.map +1 -0
  260. package/dist-server/service/privacy-record/privacy-record-service.d.ts +33 -0
  261. package/dist-server/service/privacy-record/privacy-record-service.js +133 -0
  262. package/dist-server/service/privacy-record/privacy-record-service.js.map +1 -0
  263. package/dist-server/service/privacy-record/privacy-record-type.d.ts +40 -0
  264. package/dist-server/service/privacy-record/privacy-record-type.js +153 -0
  265. package/dist-server/service/privacy-record/privacy-record-type.js.map +1 -0
  266. package/dist-server/service/privacy-record/privacy-record.d.ts +69 -0
  267. package/dist-server/service/privacy-record/privacy-record.js +245 -0
  268. package/dist-server/service/privacy-record/privacy-record.js.map +1 -0
  269. package/dist-server/service/regulation/index.d.ts +5 -0
  270. package/dist-server/service/regulation/index.js +9 -0
  271. package/dist-server/service/regulation/index.js.map +1 -0
  272. package/dist-server/service/regulation/regulation-mutation.d.ts +15 -0
  273. package/dist-server/service/regulation/regulation-mutation.js +152 -0
  274. package/dist-server/service/regulation/regulation-mutation.js.map +1 -0
  275. package/dist-server/service/regulation/regulation-query.d.ts +10 -0
  276. package/dist-server/service/regulation/regulation-query.js +109 -0
  277. package/dist-server/service/regulation/regulation-query.js.map +1 -0
  278. package/dist-server/service/regulation/regulation-read.d.ts +21 -0
  279. package/dist-server/service/regulation/regulation-read.js +111 -0
  280. package/dist-server/service/regulation/regulation-read.js.map +1 -0
  281. package/dist-server/service/regulation/regulation-rules.d.ts +83 -0
  282. package/dist-server/service/regulation/regulation-rules.js +170 -0
  283. package/dist-server/service/regulation/regulation-rules.js.map +1 -0
  284. package/dist-server/service/regulation/regulation-service.d.ts +63 -0
  285. package/dist-server/service/regulation/regulation-service.js +365 -0
  286. package/dist-server/service/regulation/regulation-service.js.map +1 -0
  287. package/dist-server/service/regulation/regulation-type.d.ts +61 -0
  288. package/dist-server/service/regulation/regulation-type.js +226 -0
  289. package/dist-server/service/regulation/regulation-type.js.map +1 -0
  290. package/dist-server/service/regulation/regulation.d.ts +113 -0
  291. package/dist-server/service/regulation/regulation.js +382 -0
  292. package/dist-server/service/regulation/regulation.js.map +1 -0
  293. package/dist-server/service/seal-use/index.d.ts +5 -0
  294. package/dist-server/service/seal-use/index.js +9 -0
  295. package/dist-server/service/seal-use/index.js.map +1 -0
  296. package/dist-server/service/seal-use/seal-use-mutation.d.ts +8 -0
  297. package/dist-server/service/seal-use/seal-use-mutation.js +69 -0
  298. package/dist-server/service/seal-use/seal-use-mutation.js.map +1 -0
  299. package/dist-server/service/seal-use/seal-use-query.d.ts +14 -0
  300. package/dist-server/service/seal-use/seal-use-query.js +100 -0
  301. package/dist-server/service/seal-use/seal-use-query.js.map +1 -0
  302. package/dist-server/service/seal-use/seal-use-rules.d.ts +35 -0
  303. package/dist-server/service/seal-use/seal-use-rules.js +64 -0
  304. package/dist-server/service/seal-use/seal-use-rules.js.map +1 -0
  305. package/dist-server/service/seal-use/seal-use-service.d.ts +20 -0
  306. package/dist-server/service/seal-use/seal-use-service.js +168 -0
  307. package/dist-server/service/seal-use/seal-use-service.js.map +1 -0
  308. package/dist-server/service/seal-use/seal-use-type.d.ts +24 -0
  309. package/dist-server/service/seal-use/seal-use-type.js +93 -0
  310. package/dist-server/service/seal-use/seal-use-type.js.map +1 -0
  311. package/dist-server/service/seal-use/seal-use.d.ts +57 -0
  312. package/dist-server/service/seal-use/seal-use.js +181 -0
  313. package/dist-server/service/seal-use/seal-use.js.map +1 -0
  314. package/dist-server/service/training/index.d.ts +5 -0
  315. package/dist-server/service/training/index.js +9 -0
  316. package/dist-server/service/training/index.js.map +1 -0
  317. package/dist-server/service/training/training-checks.d.ts +20 -0
  318. package/dist-server/service/training/training-checks.js +56 -0
  319. package/dist-server/service/training/training-checks.js.map +1 -0
  320. package/dist-server/service/training/training-kinds.d.ts +24 -0
  321. package/dist-server/service/training/training-kinds.js +42 -0
  322. package/dist-server/service/training/training-kinds.js.map +1 -0
  323. package/dist-server/service/training/training-mutation.d.ts +14 -0
  324. package/dist-server/service/training/training-mutation.js +140 -0
  325. package/dist-server/service/training/training-mutation.js.map +1 -0
  326. package/dist-server/service/training/training-query.d.ts +21 -0
  327. package/dist-server/service/training/training-query.js +196 -0
  328. package/dist-server/service/training/training-query.js.map +1 -0
  329. package/dist-server/service/training/training-read.d.ts +5 -0
  330. package/dist-server/service/training/training-read.js +35 -0
  331. package/dist-server/service/training/training-read.js.map +1 -0
  332. package/dist-server/service/training/training-register.d.ts +1 -0
  333. package/dist-server/service/training/training-register.js +27 -0
  334. package/dist-server/service/training/training-register.js.map +1 -0
  335. package/dist-server/service/training/training-rules.d.ts +72 -0
  336. package/dist-server/service/training/training-rules.js +143 -0
  337. package/dist-server/service/training/training-rules.js.map +1 -0
  338. package/dist-server/service/training/training-service.d.ts +98 -0
  339. package/dist-server/service/training/training-service.js +455 -0
  340. package/dist-server/service/training/training-service.js.map +1 -0
  341. package/dist-server/service/training/training-type.d.ts +94 -0
  342. package/dist-server/service/training/training-type.js +352 -0
  343. package/dist-server/service/training/training-type.js.map +1 -0
  344. package/dist-server/service/training/training.d.ts +127 -0
  345. package/dist-server/service/training/training.js +448 -0
  346. package/dist-server/service/training/training.js.map +1 -0
  347. package/dist-server/tsconfig.tsbuildinfo +1 -0
  348. package/package.json +61 -4
  349. package/things-factory.config.js +19 -0
  350. package/translations/en.json +610 -0
  351. package/translations/es.json +610 -0
  352. package/translations/ja.json +610 -0
  353. package/translations/ko.json +610 -0
  354. package/translations/ms.json +610 -0
  355. package/translations/zh.json +610 -0
  356. package/README.md +0 -3
@@ -0,0 +1,127 @@
1
+ import { User } from '@things-factory/auth-base';
2
+ import { Employee } from '@things-factory/organization';
3
+ import { Domain } from '@things-factory/shell';
4
+ /** How a session is given - the law's own exception (자료 게시 · 배포 for a small workplace) is one of them. */
5
+ export declare enum TrainingMethod {
6
+ /** 집합 교육 */
7
+ COLLECTIVE = "COLLECTIVE",
8
+ /** 온라인 교육 */
9
+ ONLINE = "ONLINE",
10
+ /** 외부 위탁 */
11
+ OUTSOURCED = "OUTSOURCED",
12
+ /** 자료 게시 · 배포 */
13
+ POSTED = "POSTED"
14
+ }
15
+ /** Where a completion stands - only a confirmed one is a completion. */
16
+ export declare enum TrainingCompletionStatus {
17
+ /** The person sent a certificate. */
18
+ SUBMITTED = "SUBMITTED",
19
+ /** The manager confirmed it, or recorded the attendance. */
20
+ CONFIRMED = "CONFIRMED",
21
+ /** The manager sent it back, with a reason. */
22
+ RETURNED = "RETURNED"
23
+ }
24
+ export declare class TrainingAudience {
25
+ scope: string;
26
+ targetId: string;
27
+ targetName?: string;
28
+ }
29
+ /**
30
+ * 교육 종류 설정 (ADR-0187 decision 15) - a domain's own word on one kind: on or off, the day of the year it is due, who
31
+ * must take it, and the memo that keeps why (a labour attorney's view on 산업안전보건 교육). A kind with no row reads as
32
+ * the module declares it.
33
+ */
34
+ export declare class TrainingSetting {
35
+ readonly id: string;
36
+ domain?: Domain;
37
+ domainId?: string;
38
+ kind: string;
39
+ enabled: boolean;
40
+ dueDay?: string;
41
+ audiences?: TrainingAudience[];
42
+ memo?: string;
43
+ createdAt?: Date;
44
+ updatedAt?: Date;
45
+ creator?: User;
46
+ creatorId?: string;
47
+ updater?: User;
48
+ updaterId?: string;
49
+ }
50
+ /**
51
+ * 교육 회차 (ADR-0187 decision 16) - one training given: its kind and year, how, when, by whom, its material and who it
52
+ * is for. Opening it tells its audience (the announcement trigger `compliance.training-scheduled`). Kept - never deleted.
53
+ */
54
+ export declare class TrainingSession {
55
+ readonly id: string;
56
+ domain?: Domain;
57
+ domainId?: string;
58
+ kind: string;
59
+ year: number;
60
+ name: string;
61
+ method: TrainingMethod;
62
+ startsOn: string;
63
+ endsOn?: string;
64
+ instructor?: string;
65
+ organisation?: string;
66
+ audiences?: TrainingAudience[];
67
+ notes?: string;
68
+ createdAt?: Date;
69
+ updatedAt?: Date;
70
+ creator?: User;
71
+ creatorId?: string;
72
+ updater?: User;
73
+ updaterId?: string;
74
+ }
75
+ /**
76
+ * 이수 기록 (ADR-0187 decision 17) - one person's completion of one kind for one year, with its proof: attendance the
77
+ * manager recorded at a session (confirmed at once), or a certificate the person sent (confirmed or returned). Only a
78
+ * confirmed row is a completion. Kept - a mistake is returned or corrected with a new row.
79
+ */
80
+ export declare class TrainingCompletion {
81
+ readonly id: string;
82
+ domain?: Domain;
83
+ domainId?: string;
84
+ employee?: Employee;
85
+ employeeId?: string;
86
+ kind: string;
87
+ year: number;
88
+ session?: TrainingSession;
89
+ sessionId?: string;
90
+ completedOn: string;
91
+ method: TrainingMethod;
92
+ organisation?: string;
93
+ status: TrainingCompletionStatus;
94
+ returnReason?: string;
95
+ decidedAt?: Date;
96
+ decidedBy?: User;
97
+ decidedById?: string;
98
+ createdAt?: Date;
99
+ updatedAt?: Date;
100
+ creator?: User;
101
+ creatorId?: string;
102
+ updater?: User;
103
+ updaterId?: string;
104
+ }
105
+ /**
106
+ * 이수 할 일 (ADR-0187 decision 18) - who must complete which kind by when in a year, and the worklist to-do handed
107
+ * out for it. One per person, kind and year, so a year opened twice hands out nothing twice; the completions that come
108
+ * and go for it close the one to-do.
109
+ */
110
+ export declare class TrainingAssignment {
111
+ readonly id: string;
112
+ domain?: Domain;
113
+ domainId?: string;
114
+ employee?: Employee;
115
+ employeeId?: string;
116
+ kind: string;
117
+ year: number;
118
+ dueOn: string;
119
+ todoInstanceId?: string;
120
+ closedAt?: Date;
121
+ createdAt?: Date;
122
+ updatedAt?: Date;
123
+ creator?: User;
124
+ creatorId?: string;
125
+ updater?: User;
126
+ updaterId?: string;
127
+ }
@@ -0,0 +1,448 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TrainingAssignment = exports.TrainingCompletion = exports.TrainingSession = exports.TrainingSetting = exports.TrainingAudience = exports.TrainingCompletionStatus = exports.TrainingMethod = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const typeorm_1 = require("typeorm");
7
+ const auth_base_1 = require("@things-factory/auth-base");
8
+ const organization_1 = require("@things-factory/organization");
9
+ const shell_1 = require("@things-factory/shell");
10
+ /** How a session is given - the law's own exception (자료 게시 · 배포 for a small workplace) is one of them. */
11
+ var TrainingMethod;
12
+ (function (TrainingMethod) {
13
+ /** 집합 교육 */
14
+ TrainingMethod["COLLECTIVE"] = "COLLECTIVE";
15
+ /** 온라인 교육 */
16
+ TrainingMethod["ONLINE"] = "ONLINE";
17
+ /** 외부 위탁 */
18
+ TrainingMethod["OUTSOURCED"] = "OUTSOURCED";
19
+ /** 자료 게시 · 배포 */
20
+ TrainingMethod["POSTED"] = "POSTED";
21
+ })(TrainingMethod || (exports.TrainingMethod = TrainingMethod = {}));
22
+ (0, type_graphql_1.registerEnumType)(TrainingMethod, { name: 'TrainingMethod', description: 'collective, online, outsourced, or the material posted and handed out' });
23
+ /** Where a completion stands - only a confirmed one is a completion. */
24
+ var TrainingCompletionStatus;
25
+ (function (TrainingCompletionStatus) {
26
+ /** The person sent a certificate. */
27
+ TrainingCompletionStatus["SUBMITTED"] = "SUBMITTED";
28
+ /** The manager confirmed it, or recorded the attendance. */
29
+ TrainingCompletionStatus["CONFIRMED"] = "CONFIRMED";
30
+ /** The manager sent it back, with a reason. */
31
+ TrainingCompletionStatus["RETURNED"] = "RETURNED";
32
+ })(TrainingCompletionStatus || (exports.TrainingCompletionStatus = TrainingCompletionStatus = {}));
33
+ (0, type_graphql_1.registerEnumType)(TrainingCompletionStatus, { name: 'TrainingCompletionStatus', description: 'submitted by the person, confirmed by the manager, or returned' });
34
+ let TrainingAudience = class TrainingAudience {
35
+ };
36
+ exports.TrainingAudience = TrainingAudience;
37
+ tslib_1.__decorate([
38
+ (0, type_graphql_1.Field)({ description: 'DOMAIN | DEPARTMENT | ROLE | USER' }),
39
+ tslib_1.__metadata("design:type", String)
40
+ ], TrainingAudience.prototype, "scope", void 0);
41
+ tslib_1.__decorate([
42
+ (0, type_graphql_1.Field)({ description: 'The id of the domain, department, role or user' }),
43
+ tslib_1.__metadata("design:type", String)
44
+ ], TrainingAudience.prototype, "targetId", void 0);
45
+ tslib_1.__decorate([
46
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Its name as it was given' }),
47
+ tslib_1.__metadata("design:type", String)
48
+ ], TrainingAudience.prototype, "targetName", void 0);
49
+ exports.TrainingAudience = TrainingAudience = tslib_1.__decorate([
50
+ (0, type_graphql_1.ObjectType)({ description: 'One target of an audience - the whole domain, a department (with those under it), a role or a person' })
51
+ ], TrainingAudience);
52
+ /**
53
+ * 교육 종류 설정 (ADR-0187 decision 15) - a domain's own word on one kind: on or off, the day of the year it is due, who
54
+ * must take it, and the memo that keeps why (a labour attorney's view on 산업안전보건 교육). A kind with no row reads as
55
+ * the module declares it.
56
+ */
57
+ let TrainingSetting = class TrainingSetting {
58
+ };
59
+ exports.TrainingSetting = TrainingSetting;
60
+ tslib_1.__decorate([
61
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
62
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
63
+ tslib_1.__metadata("design:type", String)
64
+ ], TrainingSetting.prototype, "id", void 0);
65
+ tslib_1.__decorate([
66
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
67
+ (0, type_graphql_1.Field)(type => shell_1.Domain, { nullable: true }),
68
+ tslib_1.__metadata("design:type", shell_1.Domain)
69
+ ], TrainingSetting.prototype, "domain", void 0);
70
+ tslib_1.__decorate([
71
+ (0, typeorm_1.RelationId)((row) => row.domain),
72
+ tslib_1.__metadata("design:type", String)
73
+ ], TrainingSetting.prototype, "domainId", void 0);
74
+ tslib_1.__decorate([
75
+ (0, typeorm_1.Column)(),
76
+ (0, type_graphql_1.Field)({ description: 'The kind - SEXUAL_HARASSMENT, DISABILITY_AWARENESS, PENSION, PRIVACY, SAFETY, WORKPLACE_BULLYING, OTHER' }),
77
+ tslib_1.__metadata("design:type", String)
78
+ ], TrainingSetting.prototype, "kind", void 0);
79
+ tslib_1.__decorate([
80
+ (0, typeorm_1.Column)(),
81
+ (0, type_graphql_1.Field)({ description: 'Whether the domain trains it' }),
82
+ tslib_1.__metadata("design:type", Boolean)
83
+ ], TrainingSetting.prototype, "enabled", void 0);
84
+ tslib_1.__decorate([
85
+ (0, typeorm_1.Column)({ nullable: true }),
86
+ (0, type_graphql_1.Field)({ nullable: true, description: 'MM-DD of each year it is due by - 12-31 when empty' }),
87
+ tslib_1.__metadata("design:type", String)
88
+ ], TrainingSetting.prototype, "dueDay", void 0);
89
+ tslib_1.__decorate([
90
+ (0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
91
+ (0, type_graphql_1.Field)(type => [TrainingAudience], { nullable: true, description: 'Who must take it - the whole domain when empty' }),
92
+ tslib_1.__metadata("design:type", Array)
93
+ ], TrainingSetting.prototype, "audiences", void 0);
94
+ tslib_1.__decorate([
95
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
96
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Why it is on or off, and anything else the manager keeps' }),
97
+ tslib_1.__metadata("design:type", String)
98
+ ], TrainingSetting.prototype, "memo", void 0);
99
+ tslib_1.__decorate([
100
+ (0, typeorm_1.CreateDateColumn)(),
101
+ (0, type_graphql_1.Field)({ nullable: true }),
102
+ tslib_1.__metadata("design:type", Date)
103
+ ], TrainingSetting.prototype, "createdAt", void 0);
104
+ tslib_1.__decorate([
105
+ (0, typeorm_1.UpdateDateColumn)(),
106
+ (0, type_graphql_1.Field)({ nullable: true }),
107
+ tslib_1.__metadata("design:type", Date)
108
+ ], TrainingSetting.prototype, "updatedAt", void 0);
109
+ tslib_1.__decorate([
110
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
111
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
112
+ tslib_1.__metadata("design:type", auth_base_1.User)
113
+ ], TrainingSetting.prototype, "creator", void 0);
114
+ tslib_1.__decorate([
115
+ (0, typeorm_1.RelationId)((row) => row.creator),
116
+ tslib_1.__metadata("design:type", String)
117
+ ], TrainingSetting.prototype, "creatorId", void 0);
118
+ tslib_1.__decorate([
119
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
120
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
121
+ tslib_1.__metadata("design:type", auth_base_1.User)
122
+ ], TrainingSetting.prototype, "updater", void 0);
123
+ tslib_1.__decorate([
124
+ (0, typeorm_1.RelationId)((row) => row.updater),
125
+ tslib_1.__metadata("design:type", String)
126
+ ], TrainingSetting.prototype, "updaterId", void 0);
127
+ exports.TrainingSetting = TrainingSetting = tslib_1.__decorate([
128
+ (0, typeorm_1.Entity)({ name: 'compliance_training_settings' }),
129
+ (0, typeorm_1.Index)('ix_compliance_training_setting_0', (row) => [row.domain, row.kind], { unique: true }),
130
+ (0, type_graphql_1.ObjectType)({ description: "Entity for TrainingSetting - a domain's word on one kind of mandatory training" })
131
+ ], TrainingSetting);
132
+ /**
133
+ * 교육 회차 (ADR-0187 decision 16) - one training given: its kind and year, how, when, by whom, its material and who it
134
+ * is for. Opening it tells its audience (the announcement trigger `compliance.training-scheduled`). Kept - never deleted.
135
+ */
136
+ let TrainingSession = class TrainingSession {
137
+ };
138
+ exports.TrainingSession = TrainingSession;
139
+ tslib_1.__decorate([
140
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
141
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
142
+ tslib_1.__metadata("design:type", String)
143
+ ], TrainingSession.prototype, "id", void 0);
144
+ tslib_1.__decorate([
145
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
146
+ (0, type_graphql_1.Field)(type => shell_1.Domain, { nullable: true }),
147
+ tslib_1.__metadata("design:type", shell_1.Domain)
148
+ ], TrainingSession.prototype, "domain", void 0);
149
+ tslib_1.__decorate([
150
+ (0, typeorm_1.RelationId)((row) => row.domain),
151
+ tslib_1.__metadata("design:type", String)
152
+ ], TrainingSession.prototype, "domainId", void 0);
153
+ tslib_1.__decorate([
154
+ (0, typeorm_1.Column)(),
155
+ (0, type_graphql_1.Field)({ description: 'The kind of training' }),
156
+ tslib_1.__metadata("design:type", String)
157
+ ], TrainingSession.prototype, "kind", void 0);
158
+ tslib_1.__decorate([
159
+ (0, typeorm_1.Column)({ type: 'int' }),
160
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The year (cycle) it counts for' }),
161
+ tslib_1.__metadata("design:type", Number)
162
+ ], TrainingSession.prototype, "year", void 0);
163
+ tslib_1.__decorate([
164
+ (0, typeorm_1.Column)(),
165
+ (0, type_graphql_1.Field)({ description: 'What it is called' }),
166
+ tslib_1.__metadata("design:type", String)
167
+ ], TrainingSession.prototype, "name", void 0);
168
+ tslib_1.__decorate([
169
+ (0, typeorm_1.Column)(),
170
+ (0, type_graphql_1.Field)(type => TrainingMethod),
171
+ tslib_1.__metadata("design:type", String)
172
+ ], TrainingSession.prototype, "method", void 0);
173
+ tslib_1.__decorate([
174
+ (0, typeorm_1.Column)(),
175
+ (0, type_graphql_1.Field)({ description: 'YYYY-MM-DD it is given, or its first day' }),
176
+ tslib_1.__metadata("design:type", String)
177
+ ], TrainingSession.prototype, "startsOn", void 0);
178
+ tslib_1.__decorate([
179
+ (0, typeorm_1.Column)({ nullable: true }),
180
+ (0, type_graphql_1.Field)({ nullable: true, description: 'YYYY-MM-DD its last day, for one given over days' }),
181
+ tslib_1.__metadata("design:type", String)
182
+ ], TrainingSession.prototype, "endsOn", void 0);
183
+ tslib_1.__decorate([
184
+ (0, typeorm_1.Column)({ nullable: true }),
185
+ (0, type_graphql_1.Field)({ nullable: true }),
186
+ tslib_1.__metadata("design:type", String)
187
+ ], TrainingSession.prototype, "instructor", void 0);
188
+ tslib_1.__decorate([
189
+ (0, typeorm_1.Column)({ nullable: true }),
190
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The organisation that gives it' }),
191
+ tslib_1.__metadata("design:type", String)
192
+ ], TrainingSession.prototype, "organisation", void 0);
193
+ tslib_1.__decorate([
194
+ (0, typeorm_1.Column)({ type: 'simple-json', nullable: true }),
195
+ (0, type_graphql_1.Field)(type => [TrainingAudience], { nullable: true, description: 'Who it is for - the kind\'s audience when empty' }),
196
+ tslib_1.__metadata("design:type", Array)
197
+ ], TrainingSession.prototype, "audiences", void 0);
198
+ tslib_1.__decorate([
199
+ (0, typeorm_1.Column)({ type: 'text', nullable: true }),
200
+ (0, type_graphql_1.Field)({ nullable: true }),
201
+ tslib_1.__metadata("design:type", String)
202
+ ], TrainingSession.prototype, "notes", void 0);
203
+ tslib_1.__decorate([
204
+ (0, typeorm_1.CreateDateColumn)(),
205
+ (0, type_graphql_1.Field)({ nullable: true }),
206
+ tslib_1.__metadata("design:type", Date)
207
+ ], TrainingSession.prototype, "createdAt", void 0);
208
+ tslib_1.__decorate([
209
+ (0, typeorm_1.UpdateDateColumn)(),
210
+ (0, type_graphql_1.Field)({ nullable: true }),
211
+ tslib_1.__metadata("design:type", Date)
212
+ ], TrainingSession.prototype, "updatedAt", void 0);
213
+ tslib_1.__decorate([
214
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
215
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
216
+ tslib_1.__metadata("design:type", auth_base_1.User)
217
+ ], TrainingSession.prototype, "creator", void 0);
218
+ tslib_1.__decorate([
219
+ (0, typeorm_1.RelationId)((row) => row.creator),
220
+ tslib_1.__metadata("design:type", String)
221
+ ], TrainingSession.prototype, "creatorId", void 0);
222
+ tslib_1.__decorate([
223
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
224
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
225
+ tslib_1.__metadata("design:type", auth_base_1.User)
226
+ ], TrainingSession.prototype, "updater", void 0);
227
+ tslib_1.__decorate([
228
+ (0, typeorm_1.RelationId)((row) => row.updater),
229
+ tslib_1.__metadata("design:type", String)
230
+ ], TrainingSession.prototype, "updaterId", void 0);
231
+ exports.TrainingSession = TrainingSession = tslib_1.__decorate([
232
+ (0, typeorm_1.Entity)({ name: 'compliance_training_sessions' }),
233
+ (0, typeorm_1.Index)('ix_compliance_training_session_0', (row) => [row.domain, row.kind, row.year]),
234
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for TrainingSession - one mandatory training given' })
235
+ ], TrainingSession);
236
+ /**
237
+ * 이수 기록 (ADR-0187 decision 17) - one person's completion of one kind for one year, with its proof: attendance the
238
+ * manager recorded at a session (confirmed at once), or a certificate the person sent (confirmed or returned). Only a
239
+ * confirmed row is a completion. Kept - a mistake is returned or corrected with a new row.
240
+ */
241
+ let TrainingCompletion = class TrainingCompletion {
242
+ };
243
+ exports.TrainingCompletion = TrainingCompletion;
244
+ tslib_1.__decorate([
245
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
246
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
247
+ tslib_1.__metadata("design:type", String)
248
+ ], TrainingCompletion.prototype, "id", void 0);
249
+ tslib_1.__decorate([
250
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
251
+ (0, type_graphql_1.Field)(type => shell_1.Domain, { nullable: true }),
252
+ tslib_1.__metadata("design:type", shell_1.Domain)
253
+ ], TrainingCompletion.prototype, "domain", void 0);
254
+ tslib_1.__decorate([
255
+ (0, typeorm_1.RelationId)((row) => row.domain),
256
+ tslib_1.__metadata("design:type", String)
257
+ ], TrainingCompletion.prototype, "domainId", void 0);
258
+ tslib_1.__decorate([
259
+ (0, typeorm_1.ManyToOne)(type => organization_1.Employee),
260
+ (0, type_graphql_1.Field)(type => organization_1.Employee, { nullable: true, description: 'Who took it' }),
261
+ tslib_1.__metadata("design:type", organization_1.Employee)
262
+ ], TrainingCompletion.prototype, "employee", void 0);
263
+ tslib_1.__decorate([
264
+ (0, typeorm_1.RelationId)((row) => row.employee),
265
+ tslib_1.__metadata("design:type", String)
266
+ ], TrainingCompletion.prototype, "employeeId", void 0);
267
+ tslib_1.__decorate([
268
+ (0, typeorm_1.Column)(),
269
+ (0, type_graphql_1.Field)({ description: 'The kind of training' }),
270
+ tslib_1.__metadata("design:type", String)
271
+ ], TrainingCompletion.prototype, "kind", void 0);
272
+ tslib_1.__decorate([
273
+ (0, typeorm_1.Column)({ type: 'int' }),
274
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int, { description: 'The year (cycle) it counts for' }),
275
+ tslib_1.__metadata("design:type", Number)
276
+ ], TrainingCompletion.prototype, "year", void 0);
277
+ tslib_1.__decorate([
278
+ (0, typeorm_1.ManyToOne)(type => TrainingSession, { nullable: true }),
279
+ (0, type_graphql_1.Field)(type => TrainingSession, { nullable: true, description: 'The session taken - none for a training taken elsewhere' }),
280
+ tslib_1.__metadata("design:type", TrainingSession)
281
+ ], TrainingCompletion.prototype, "session", void 0);
282
+ tslib_1.__decorate([
283
+ (0, typeorm_1.RelationId)((row) => row.session),
284
+ tslib_1.__metadata("design:type", String)
285
+ ], TrainingCompletion.prototype, "sessionId", void 0);
286
+ tslib_1.__decorate([
287
+ (0, typeorm_1.Column)(),
288
+ (0, type_graphql_1.Field)({ description: 'YYYY-MM-DD it was completed' }),
289
+ tslib_1.__metadata("design:type", String)
290
+ ], TrainingCompletion.prototype, "completedOn", void 0);
291
+ tslib_1.__decorate([
292
+ (0, typeorm_1.Column)(),
293
+ (0, type_graphql_1.Field)(type => TrainingMethod),
294
+ tslib_1.__metadata("design:type", String)
295
+ ], TrainingCompletion.prototype, "method", void 0);
296
+ tslib_1.__decorate([
297
+ (0, typeorm_1.Column)({ nullable: true }),
298
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The organisation that gave a training taken elsewhere' }),
299
+ tslib_1.__metadata("design:type", String)
300
+ ], TrainingCompletion.prototype, "organisation", void 0);
301
+ tslib_1.__decorate([
302
+ (0, typeorm_1.Column)({ default: TrainingCompletionStatus.SUBMITTED }),
303
+ (0, type_graphql_1.Field)(type => TrainingCompletionStatus),
304
+ tslib_1.__metadata("design:type", String)
305
+ ], TrainingCompletion.prototype, "status", void 0);
306
+ tslib_1.__decorate([
307
+ (0, typeorm_1.Column)({ nullable: true }),
308
+ (0, type_graphql_1.Field)({ nullable: true, description: 'Why it was returned' }),
309
+ tslib_1.__metadata("design:type", String)
310
+ ], TrainingCompletion.prototype, "returnReason", void 0);
311
+ tslib_1.__decorate([
312
+ (0, typeorm_1.Column)({ nullable: true }),
313
+ (0, type_graphql_1.Field)({ nullable: true }),
314
+ tslib_1.__metadata("design:type", Date)
315
+ ], TrainingCompletion.prototype, "decidedAt", void 0);
316
+ tslib_1.__decorate([
317
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
318
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true, description: 'Who confirmed or returned it' }),
319
+ tslib_1.__metadata("design:type", auth_base_1.User)
320
+ ], TrainingCompletion.prototype, "decidedBy", void 0);
321
+ tslib_1.__decorate([
322
+ (0, typeorm_1.RelationId)((row) => row.decidedBy),
323
+ tslib_1.__metadata("design:type", String)
324
+ ], TrainingCompletion.prototype, "decidedById", void 0);
325
+ tslib_1.__decorate([
326
+ (0, typeorm_1.CreateDateColumn)(),
327
+ (0, type_graphql_1.Field)({ nullable: true }),
328
+ tslib_1.__metadata("design:type", Date)
329
+ ], TrainingCompletion.prototype, "createdAt", void 0);
330
+ tslib_1.__decorate([
331
+ (0, typeorm_1.UpdateDateColumn)(),
332
+ (0, type_graphql_1.Field)({ nullable: true }),
333
+ tslib_1.__metadata("design:type", Date)
334
+ ], TrainingCompletion.prototype, "updatedAt", void 0);
335
+ tslib_1.__decorate([
336
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
337
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
338
+ tslib_1.__metadata("design:type", auth_base_1.User)
339
+ ], TrainingCompletion.prototype, "creator", void 0);
340
+ tslib_1.__decorate([
341
+ (0, typeorm_1.RelationId)((row) => row.creator),
342
+ tslib_1.__metadata("design:type", String)
343
+ ], TrainingCompletion.prototype, "creatorId", void 0);
344
+ tslib_1.__decorate([
345
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
346
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
347
+ tslib_1.__metadata("design:type", auth_base_1.User)
348
+ ], TrainingCompletion.prototype, "updater", void 0);
349
+ tslib_1.__decorate([
350
+ (0, typeorm_1.RelationId)((row) => row.updater),
351
+ tslib_1.__metadata("design:type", String)
352
+ ], TrainingCompletion.prototype, "updaterId", void 0);
353
+ exports.TrainingCompletion = TrainingCompletion = tslib_1.__decorate([
354
+ (0, typeorm_1.Entity)({ name: 'compliance_training_completions' }),
355
+ (0, typeorm_1.Index)('ix_compliance_training_completion_0', (row) => [row.domain, row.kind, row.year]),
356
+ (0, typeorm_1.Index)('ix_compliance_training_completion_1', (row) => [row.domain, row.employee]),
357
+ (0, type_graphql_1.ObjectType)({ description: "Entity for TrainingCompletion - one person's completion of a mandatory training, with its proof" })
358
+ ], TrainingCompletion);
359
+ /**
360
+ * 이수 할 일 (ADR-0187 decision 18) - who must complete which kind by when in a year, and the worklist to-do handed
361
+ * out for it. One per person, kind and year, so a year opened twice hands out nothing twice; the completions that come
362
+ * and go for it close the one to-do.
363
+ */
364
+ let TrainingAssignment = class TrainingAssignment {
365
+ };
366
+ exports.TrainingAssignment = TrainingAssignment;
367
+ tslib_1.__decorate([
368
+ (0, typeorm_1.PrimaryGeneratedColumn)('uuid'),
369
+ (0, type_graphql_1.Field)(type => type_graphql_1.ID),
370
+ tslib_1.__metadata("design:type", String)
371
+ ], TrainingAssignment.prototype, "id", void 0);
372
+ tslib_1.__decorate([
373
+ (0, typeorm_1.ManyToOne)(type => shell_1.Domain),
374
+ (0, type_graphql_1.Field)(type => shell_1.Domain, { nullable: true }),
375
+ tslib_1.__metadata("design:type", shell_1.Domain)
376
+ ], TrainingAssignment.prototype, "domain", void 0);
377
+ tslib_1.__decorate([
378
+ (0, typeorm_1.RelationId)((row) => row.domain),
379
+ tslib_1.__metadata("design:type", String)
380
+ ], TrainingAssignment.prototype, "domainId", void 0);
381
+ tslib_1.__decorate([
382
+ (0, typeorm_1.ManyToOne)(type => organization_1.Employee),
383
+ (0, type_graphql_1.Field)(type => organization_1.Employee, { nullable: true }),
384
+ tslib_1.__metadata("design:type", organization_1.Employee)
385
+ ], TrainingAssignment.prototype, "employee", void 0);
386
+ tslib_1.__decorate([
387
+ (0, typeorm_1.RelationId)((row) => row.employee),
388
+ tslib_1.__metadata("design:type", String)
389
+ ], TrainingAssignment.prototype, "employeeId", void 0);
390
+ tslib_1.__decorate([
391
+ (0, typeorm_1.Column)(),
392
+ (0, type_graphql_1.Field)(),
393
+ tslib_1.__metadata("design:type", String)
394
+ ], TrainingAssignment.prototype, "kind", void 0);
395
+ tslib_1.__decorate([
396
+ (0, typeorm_1.Column)({ type: 'int' }),
397
+ (0, type_graphql_1.Field)(type => type_graphql_1.Int),
398
+ tslib_1.__metadata("design:type", Number)
399
+ ], TrainingAssignment.prototype, "year", void 0);
400
+ tslib_1.__decorate([
401
+ (0, typeorm_1.Column)(),
402
+ (0, type_graphql_1.Field)({ description: 'YYYY-MM-DD it is due by' }),
403
+ tslib_1.__metadata("design:type", String)
404
+ ], TrainingAssignment.prototype, "dueOn", void 0);
405
+ tslib_1.__decorate([
406
+ (0, typeorm_1.Column)({ nullable: true }),
407
+ (0, type_graphql_1.Field)({ nullable: true, description: 'The worklist to-do handed out' }),
408
+ tslib_1.__metadata("design:type", String)
409
+ ], TrainingAssignment.prototype, "todoInstanceId", void 0);
410
+ tslib_1.__decorate([
411
+ (0, typeorm_1.Column)({ nullable: true }),
412
+ (0, type_graphql_1.Field)({ nullable: true, description: 'When a confirmed completion closed the to-do' }),
413
+ tslib_1.__metadata("design:type", Date)
414
+ ], TrainingAssignment.prototype, "closedAt", void 0);
415
+ tslib_1.__decorate([
416
+ (0, typeorm_1.CreateDateColumn)(),
417
+ (0, type_graphql_1.Field)({ nullable: true }),
418
+ tslib_1.__metadata("design:type", Date)
419
+ ], TrainingAssignment.prototype, "createdAt", void 0);
420
+ tslib_1.__decorate([
421
+ (0, typeorm_1.UpdateDateColumn)(),
422
+ (0, type_graphql_1.Field)({ nullable: true }),
423
+ tslib_1.__metadata("design:type", Date)
424
+ ], TrainingAssignment.prototype, "updatedAt", void 0);
425
+ tslib_1.__decorate([
426
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
427
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
428
+ tslib_1.__metadata("design:type", auth_base_1.User)
429
+ ], TrainingAssignment.prototype, "creator", void 0);
430
+ tslib_1.__decorate([
431
+ (0, typeorm_1.RelationId)((row) => row.creator),
432
+ tslib_1.__metadata("design:type", String)
433
+ ], TrainingAssignment.prototype, "creatorId", void 0);
434
+ tslib_1.__decorate([
435
+ (0, typeorm_1.ManyToOne)(type => auth_base_1.User, { nullable: true }),
436
+ (0, type_graphql_1.Field)(type => auth_base_1.User, { nullable: true }),
437
+ tslib_1.__metadata("design:type", auth_base_1.User)
438
+ ], TrainingAssignment.prototype, "updater", void 0);
439
+ tslib_1.__decorate([
440
+ (0, typeorm_1.RelationId)((row) => row.updater),
441
+ tslib_1.__metadata("design:type", String)
442
+ ], TrainingAssignment.prototype, "updaterId", void 0);
443
+ exports.TrainingAssignment = TrainingAssignment = tslib_1.__decorate([
444
+ (0, typeorm_1.Entity)({ name: 'compliance_training_assignments' }),
445
+ (0, typeorm_1.Index)('ix_compliance_training_assignment_0', (row) => [row.domain, row.kind, row.year, row.employee], { unique: true }),
446
+ (0, type_graphql_1.ObjectType)({ description: 'Entity for TrainingAssignment - a person asked to complete a kind of training by a day, and its to-do' })
447
+ ], TrainingAssignment);
448
+ //# sourceMappingURL=training.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"training.js","sourceRoot":"","sources":["../../../server/service/training/training.ts"],"names":[],"mappings":"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","sourcesContent":["import { Field, ID, Int, ObjectType, registerEnumType } from 'type-graphql'\nimport { Column, CreateDateColumn, Entity, Index, ManyToOne, PrimaryGeneratedColumn, RelationId, UpdateDateColumn } from 'typeorm'\n\nimport { User } from '@things-factory/auth-base'\nimport { Employee } from '@things-factory/organization'\nimport { Domain } from '@things-factory/shell'\n\n/** How a session is given - the law's own exception (자료 게시 · 배포 for a small workplace) is one of them. */\nexport enum TrainingMethod {\n /** 집합 교육 */\n COLLECTIVE = 'COLLECTIVE',\n /** 온라인 교육 */\n ONLINE = 'ONLINE',\n /** 외부 위탁 */\n OUTSOURCED = 'OUTSOURCED',\n /** 자료 게시 · 배포 */\n POSTED = 'POSTED'\n}\n\nregisterEnumType(TrainingMethod, { name: 'TrainingMethod', description: 'collective, online, outsourced, or the material posted and handed out' })\n\n/** Where a completion stands - only a confirmed one is a completion. */\nexport enum TrainingCompletionStatus {\n /** The person sent a certificate. */\n SUBMITTED = 'SUBMITTED',\n /** The manager confirmed it, or recorded the attendance. */\n CONFIRMED = 'CONFIRMED',\n /** The manager sent it back, with a reason. */\n RETURNED = 'RETURNED'\n}\n\nregisterEnumType(TrainingCompletionStatus, { name: 'TrainingCompletionStatus', description: 'submitted by the person, confirmed by the manager, or returned' })\n\n@ObjectType({ description: 'One target of an audience - the whole domain, a department (with those under it), a role or a person' })\nexport class TrainingAudience {\n @Field({ description: 'DOMAIN | DEPARTMENT | ROLE | USER' })\n scope: string\n\n @Field({ description: 'The id of the domain, department, role or user' })\n targetId: string\n\n @Field({ nullable: true, description: 'Its name as it was given' })\n targetName?: string\n}\n\n/**\n * 교육 종류 설정 (ADR-0187 decision 15) - a domain's own word on one kind: on or off, the day of the year it is due, who\n * must take it, and the memo that keeps why (a labour attorney's view on 산업안전보건 교육). A kind with no row reads as\n * the module declares it.\n */\n@Entity({ name: 'compliance_training_settings' })\n@Index('ix_compliance_training_setting_0', (row: TrainingSetting) => [row.domain, row.kind], { unique: true })\n@ObjectType({ description: \"Entity for TrainingSetting - a domain's word on one kind of mandatory training\" })\nexport class TrainingSetting {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain?: Domain\n\n @RelationId((row: TrainingSetting) => row.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The kind - SEXUAL_HARASSMENT, DISABILITY_AWARENESS, PENSION, PRIVACY, SAFETY, WORKPLACE_BULLYING, OTHER' })\n kind: string\n\n @Column()\n @Field({ description: 'Whether the domain trains it' })\n enabled: boolean\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'MM-DD of each year it is due by - 12-31 when empty' })\n dueDay?: string\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => [TrainingAudience], { nullable: true, description: 'Who must take it - the whole domain when empty' })\n audiences?: TrainingAudience[]\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true, description: 'Why it is on or off, and anything else the manager keeps' })\n memo?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((row: TrainingSetting) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((row: TrainingSetting) => row.updater)\n updaterId?: string\n}\n\n/**\n * 교육 회차 (ADR-0187 decision 16) - one training given: its kind and year, how, when, by whom, its material and who it\n * is for. Opening it tells its audience (the announcement trigger `compliance.training-scheduled`). Kept - never deleted.\n */\n@Entity({ name: 'compliance_training_sessions' })\n@Index('ix_compliance_training_session_0', (row: TrainingSession) => [row.domain, row.kind, row.year])\n@ObjectType({ description: 'Entity for TrainingSession - one mandatory training given' })\nexport class TrainingSession {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain?: Domain\n\n @RelationId((row: TrainingSession) => row.domain)\n domainId?: string\n\n @Column()\n @Field({ description: 'The kind of training' })\n kind: string\n\n @Column({ type: 'int' })\n @Field(type => Int, { description: 'The year (cycle) it counts for' })\n year: number\n\n @Column()\n @Field({ description: 'What it is called' })\n name: string\n\n @Column()\n @Field(type => TrainingMethod)\n method: TrainingMethod\n\n @Column()\n @Field({ description: 'YYYY-MM-DD it is given, or its first day' })\n startsOn: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'YYYY-MM-DD its last day, for one given over days' })\n endsOn?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n instructor?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The organisation that gives it' })\n organisation?: string\n\n @Column({ type: 'simple-json', nullable: true })\n @Field(type => [TrainingAudience], { nullable: true, description: 'Who it is for - the kind\\'s audience when empty' })\n audiences?: TrainingAudience[]\n\n @Column({ type: 'text', nullable: true })\n @Field({ nullable: true })\n notes?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((row: TrainingSession) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((row: TrainingSession) => row.updater)\n updaterId?: string\n}\n\n/**\n * 이수 기록 (ADR-0187 decision 17) - one person's completion of one kind for one year, with its proof: attendance the\n * manager recorded at a session (confirmed at once), or a certificate the person sent (confirmed or returned). Only a\n * confirmed row is a completion. Kept - a mistake is returned or corrected with a new row.\n */\n@Entity({ name: 'compliance_training_completions' })\n@Index('ix_compliance_training_completion_0', (row: TrainingCompletion) => [row.domain, row.kind, row.year])\n@Index('ix_compliance_training_completion_1', (row: TrainingCompletion) => [row.domain, row.employee])\n@ObjectType({ description: \"Entity for TrainingCompletion - one person's completion of a mandatory training, with its proof\" })\nexport class TrainingCompletion {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain?: Domain\n\n @RelationId((row: TrainingCompletion) => row.domain)\n domainId?: string\n\n @ManyToOne(type => Employee)\n @Field(type => Employee, { nullable: true, description: 'Who took it' })\n employee?: Employee\n\n @RelationId((row: TrainingCompletion) => row.employee)\n employeeId?: string\n\n @Column()\n @Field({ description: 'The kind of training' })\n kind: string\n\n @Column({ type: 'int' })\n @Field(type => Int, { description: 'The year (cycle) it counts for' })\n year: number\n\n @ManyToOne(type => TrainingSession, { nullable: true })\n @Field(type => TrainingSession, { nullable: true, description: 'The session taken - none for a training taken elsewhere' })\n session?: TrainingSession\n\n @RelationId((row: TrainingCompletion) => row.session)\n sessionId?: string\n\n @Column()\n @Field({ description: 'YYYY-MM-DD it was completed' })\n completedOn: string\n\n @Column()\n @Field(type => TrainingMethod)\n method: TrainingMethod\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The organisation that gave a training taken elsewhere' })\n organisation?: string\n\n @Column({ default: TrainingCompletionStatus.SUBMITTED })\n @Field(type => TrainingCompletionStatus)\n status: TrainingCompletionStatus\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'Why it was returned' })\n returnReason?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true })\n decidedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true, description: 'Who confirmed or returned it' })\n decidedBy?: User\n\n @RelationId((row: TrainingCompletion) => row.decidedBy)\n decidedById?: string\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((row: TrainingCompletion) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((row: TrainingCompletion) => row.updater)\n updaterId?: string\n}\n\n/**\n * 이수 할 일 (ADR-0187 decision 18) - who must complete which kind by when in a year, and the worklist to-do handed\n * out for it. One per person, kind and year, so a year opened twice hands out nothing twice; the completions that come\n * and go for it close the one to-do.\n */\n@Entity({ name: 'compliance_training_assignments' })\n@Index('ix_compliance_training_assignment_0', (row: TrainingAssignment) => [row.domain, row.kind, row.year, row.employee], { unique: true })\n@ObjectType({ description: 'Entity for TrainingAssignment - a person asked to complete a kind of training by a day, and its to-do' })\nexport class TrainingAssignment {\n @PrimaryGeneratedColumn('uuid')\n @Field(type => ID)\n readonly id: string\n\n @ManyToOne(type => Domain)\n @Field(type => Domain, { nullable: true })\n domain?: Domain\n\n @RelationId((row: TrainingAssignment) => row.domain)\n domainId?: string\n\n @ManyToOne(type => Employee)\n @Field(type => Employee, { nullable: true })\n employee?: Employee\n\n @RelationId((row: TrainingAssignment) => row.employee)\n employeeId?: string\n\n @Column()\n @Field()\n kind: string\n\n @Column({ type: 'int' })\n @Field(type => Int)\n year: number\n\n @Column()\n @Field({ description: 'YYYY-MM-DD it is due by' })\n dueOn: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'The worklist to-do handed out' })\n todoInstanceId?: string\n\n @Column({ nullable: true })\n @Field({ nullable: true, description: 'When a confirmed completion closed the to-do' })\n closedAt?: Date\n\n @CreateDateColumn()\n @Field({ nullable: true })\n createdAt?: Date\n\n @UpdateDateColumn()\n @Field({ nullable: true })\n updatedAt?: Date\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n creator?: User\n\n @RelationId((row: TrainingAssignment) => row.creator)\n creatorId?: string\n\n @ManyToOne(type => User, { nullable: true })\n @Field(type => User, { nullable: true })\n updater?: User\n\n @RelationId((row: TrainingAssignment) => row.updater)\n updaterId?: string\n}\n"]}