rez_core 5.0.80 → 5.0.82

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 (424) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +8 -11
  3. package/.idea/codeStyles/Project.xml +58 -58
  4. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +1 -1
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +7 -7
  12. package/.idea/prettier.xml +5 -5
  13. package/.idea/vcs.xml +5 -5
  14. package/.prettierrc +3 -3
  15. package/README.md +99 -99
  16. package/dist/module/auth/guards/role.guard.js +3 -3
  17. package/dist/module/auth/services/auth.service.js +2 -2
  18. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  19. package/dist/module/filter/service/filter-evaluator.service.js +2 -2
  20. package/dist/module/filter/service/filter.service.js +22 -22
  21. package/dist/module/integration/examples/usage.example.js +9 -9
  22. package/dist/module/integration/service/integration.service.js +1 -1
  23. package/dist/module/integration/service/wrapper.service.js +26 -26
  24. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  25. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  26. package/dist/module/meta/repository/entity-attribute-update.repository.js +3 -3
  27. package/dist/module/meta/repository/entity-master.repository.js +6 -6
  28. package/dist/module/meta/service/entity-dynamic.service.js +36 -36
  29. package/dist/module/meta/service/entity-list.service.js +3 -3
  30. package/dist/module/meta/service/entity-relation.service.js +9 -9
  31. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  32. package/dist/module/meta/service/resolver.service.js +33 -33
  33. package/dist/module/module/repository/menu.repository.js +17 -17
  34. package/dist/module/notification/service/notification.service.js +10 -10
  35. package/dist/module/user/controller/login.controller.js +18 -18
  36. package/dist/module/user/service/user-session.service.js +2 -2
  37. package/dist/module/workflow/repository/action.repository.js +12 -12
  38. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  39. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  40. package/dist/module/workflow/repository/stage-group.repository.js +20 -20
  41. package/dist/module/workflow/repository/stage-movement.repository.d.ts +3 -1
  42. package/dist/module/workflow/repository/stage-movement.repository.js +26 -22
  43. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  44. package/dist/module/workflow/repository/stage.repository.js +8 -8
  45. package/dist/module/workflow/service/action-template-mapping.service.js +13 -13
  46. package/dist/module/workflow/service/action.service.js +7 -7
  47. package/dist/module/workflow/service/entity-modification.service.js +2 -2
  48. package/dist/module/workflow/service/stage-group.service.js +2 -2
  49. package/dist/module/workflow/service/stage.service.js +2 -2
  50. package/dist/module/workflow/service/task.service.js +18 -18
  51. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  52. package/dist/module/workflow/service/workflow-meta.service.d.ts +5 -1
  53. package/dist/module/workflow/service/workflow-meta.service.js +69 -39
  54. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  55. package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
  56. package/dist/module/workflow-schedule/processors/schedule.processor.js +4 -4
  57. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +9 -9
  58. package/dist/tsconfig.build.tsbuildinfo +1 -1
  59. package/dist/utils/service/reflection-helper.service.js +2 -2
  60. package/docs/modules/event-driven-integration-design.md +91 -91
  61. package/docs/modules/integration.md +250 -250
  62. package/eslint.config.mjs +34 -34
  63. package/nest-cli.json +14 -14
  64. package/package.json +125 -125
  65. package/server.log +850 -0
  66. package/src/app.controller.ts +12 -12
  67. package/src/app.module.ts +66 -66
  68. package/src/app.service.ts +8 -8
  69. package/src/config/bull.config.ts +69 -69
  70. package/src/config/config.module.ts +17 -17
  71. package/src/config/database.config.ts +48 -48
  72. package/src/constant/global.constant.ts +67 -67
  73. package/src/core.module.ts +91 -91
  74. package/src/decorators/roles.decorator.ts +7 -7
  75. package/src/dtos/response.dto.ts +6 -6
  76. package/src/dtos/response.ts +5 -5
  77. package/src/index.ts +1 -1
  78. package/src/module/auth/auth.module.ts +49 -49
  79. package/src/module/auth/controller/auth.controller.ts +28 -28
  80. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  81. package/src/module/auth/guards/jwt.guard.ts +22 -22
  82. package/src/module/auth/guards/role.guard.ts +68 -68
  83. package/src/module/auth/services/auth.service.ts +50 -50
  84. package/src/module/auth/services/jwt.service.ts +11 -11
  85. package/src/module/auth/strategies/google.strategy.ts +54 -54
  86. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  87. package/src/module/auth/strategies/local.strategy.ts +13 -13
  88. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  89. package/src/module/dashboard/dashboard.module.ts +21 -21
  90. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  91. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  92. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  93. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  94. package/src/module/dev/dev.module.ts +12 -12
  95. package/src/module/dev/service/dev.service.ts +7 -7
  96. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  97. package/src/module/enterprise/enterprise.module.ts +30 -30
  98. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  99. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  100. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  101. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  102. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  103. package/src/module/enterprise/repository/school.repository.ts +278 -278
  104. package/src/module/enterprise/service/brand.service.ts +5 -5
  105. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  106. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  107. package/src/module/enterprise/service/organization.service.ts +145 -145
  108. package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
  109. package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
  110. package/src/module/entity_json/entity_json.module.ts +18 -18
  111. package/src/module/entity_json/service/entityJson.repository.ts +37 -37
  112. package/src/module/entity_json/service/entity_json.service.ts +234 -234
  113. package/src/module/filter/controller/filter.controller.ts +84 -84
  114. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  115. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  116. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  117. package/src/module/filter/filter.module.ts +31 -31
  118. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  119. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  120. package/src/module/filter/service/filter.service.ts +1299 -1299
  121. package/src/module/filter/service/saved-filter.service.ts +170 -170
  122. package/src/module/ics/controller/ics.controller.ts +21 -21
  123. package/src/module/ics/dto/ics.dto.ts +55 -55
  124. package/src/module/ics/ics.module.ts +13 -13
  125. package/src/module/ics/service/ics.service.ts +57 -57
  126. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  127. package/src/module/integration/controller/integration.controller.ts +662 -662
  128. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  129. package/src/module/integration/dto/create-config.dto.ts +526 -526
  130. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  131. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  132. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  133. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  134. package/src/module/integration/examples/usage.example.ts +338 -338
  135. package/src/module/integration/factories/base.factory.ts +7 -7
  136. package/src/module/integration/factories/email.factory.ts +49 -49
  137. package/src/module/integration/factories/integration.factory.ts +121 -121
  138. package/src/module/integration/factories/sms.factory.ts +51 -51
  139. package/src/module/integration/factories/telephone.factory.ts +41 -41
  140. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  141. package/src/module/integration/integration.module.ts +110 -110
  142. package/src/module/integration/service/calendar-event.service.ts +118 -118
  143. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  144. package/src/module/integration/service/integration-queue.service.ts +229 -229
  145. package/src/module/integration/service/integration.service.ts +2633 -2633
  146. package/src/module/integration/service/oauth.service.ts +224 -224
  147. package/src/module/integration/service/wrapper.service.ts +738 -738
  148. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  149. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  150. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  151. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  152. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  153. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  154. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  155. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  156. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  157. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  158. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  159. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  160. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  161. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  162. package/src/module/layout/controller/layout.controller.ts +47 -47
  163. package/src/module/layout/entity/header-items.entity.ts +28 -28
  164. package/src/module/layout/entity/header-section.entity.ts +19 -19
  165. package/src/module/layout/layout.module.ts +21 -21
  166. package/src/module/layout/repository/header-items.repository.ts +18 -18
  167. package/src/module/layout/repository/header-section.repository.ts +22 -22
  168. package/src/module/layout/service/header-section.service.ts +25 -25
  169. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  170. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  171. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  172. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  173. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  174. package/src/module/lead/controller/lead.controller.ts +30 -30
  175. package/src/module/lead/lead.module.ts +14 -14
  176. package/src/module/lead/repository/lead.repository.ts +41 -41
  177. package/src/module/lead/service/lead.service.ts +54 -54
  178. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +37 -37
  179. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
  180. package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
  181. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
  182. package/src/module/linked_attributes/service/linked_attributes.service.ts +75 -75
  183. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  184. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  185. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  186. package/src/module/listmaster/listmaster.module.ts +46 -46
  187. package/src/module/listmaster/repository/list-master-items.repository.ts +173 -173
  188. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  189. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  190. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  191. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  192. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  193. package/src/module/listmaster/service/list-master.service.ts +535 -535
  194. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  195. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  196. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  197. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  198. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  199. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  200. package/src/module/mapper/mapper.module.ts +35 -35
  201. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  202. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  203. package/src/module/mapper/repository/mapper.repository.ts +32 -32
  204. package/src/module/mapper/service/field-mapper.service.ts +271 -271
  205. package/src/module/mapper/service/mapper.service.ts +81 -81
  206. package/src/module/master/controller/master.controller.ts +74 -74
  207. package/src/module/master/service/master.service.ts +483 -483
  208. package/src/module/meta/controller/app-master.controller.ts +38 -38
  209. package/src/module/meta/controller/attribute-master.controller.ts +84 -84
  210. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  211. package/src/module/meta/controller/entity-master.controller.ts +41 -41
  212. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  213. package/src/module/meta/controller/entity.controller.ts +392 -392
  214. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  215. package/src/module/meta/controller/media.controller.ts +107 -107
  216. package/src/module/meta/controller/meta.controller.ts +96 -96
  217. package/src/module/meta/controller/view-master.controller.ts +86 -86
  218. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  219. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  220. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  221. package/src/module/meta/entity/app-master.entity.ts +34 -34
  222. package/src/module/meta/entity/attribute-master.entity.ts +92 -92
  223. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  224. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  225. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  226. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  227. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  228. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  229. package/src/module/meta/entity/media-data.entity.ts +32 -32
  230. package/src/module/meta/entity/preference.entity.ts +62 -62
  231. package/src/module/meta/entity/view-master.entity.ts +41 -41
  232. package/src/module/meta/entity.module.ts +166 -166
  233. package/src/module/meta/repository/app-master.repository.ts +20 -20
  234. package/src/module/meta/repository/attribute-master.repository.ts +138 -138
  235. package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -44
  236. package/src/module/meta/repository/entity-master.repository.ts +111 -111
  237. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  238. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  239. package/src/module/meta/repository/media-data.repository.ts +50 -50
  240. package/src/module/meta/repository/preference.repository.ts +20 -20
  241. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  242. package/src/module/meta/repository/view-master.repository.ts +42 -42
  243. package/src/module/meta/service/app-master.service.ts +37 -37
  244. package/src/module/meta/service/attribute-master.service.ts +130 -130
  245. package/src/module/meta/service/common.service.ts +9 -9
  246. package/src/module/meta/service/entity-attribute-update.service.ts +28 -28
  247. package/src/module/meta/service/entity-dynamic.service.ts +857 -857
  248. package/src/module/meta/service/entity-list.service.ts +205 -205
  249. package/src/module/meta/service/entity-master.service.ts +171 -171
  250. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  251. package/src/module/meta/service/entity-relation.service.ts +87 -87
  252. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  253. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  254. package/src/module/meta/service/entity-table.service.ts +150 -150
  255. package/src/module/meta/service/entity-validation.service.ts +187 -187
  256. package/src/module/meta/service/entity.service.ts +67 -67
  257. package/src/module/meta/service/field-group.service.ts +103 -103
  258. package/src/module/meta/service/media-data.service.ts +507 -507
  259. package/src/module/meta/service/populate-meta.service.ts +222 -222
  260. package/src/module/meta/service/preference.service.ts +16 -16
  261. package/src/module/meta/service/resolver.service.ts +318 -318
  262. package/src/module/meta/service/section-master.service.ts +104 -104
  263. package/src/module/meta/service/update-form-json.service.ts +22 -22
  264. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  265. package/src/module/meta/service/view-master.service.ts +127 -127
  266. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  267. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  268. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  269. package/src/module/module/controller/menu.controller.ts +15 -15
  270. package/src/module/module/controller/module-access.controller.ts +134 -134
  271. package/src/module/module/entity/menu.entity.ts +43 -43
  272. package/src/module/module/entity/module-access.entity.ts +25 -25
  273. package/src/module/module/entity/module-action.entity.ts +17 -17
  274. package/src/module/module/entity/module.entity.ts +52 -52
  275. package/src/module/module/module.module.ts +42 -42
  276. package/src/module/module/repository/menu.repository.ts +191 -191
  277. package/src/module/module/repository/module-access.repository.ts +344 -344
  278. package/src/module/module/service/menu.service.ts +82 -82
  279. package/src/module/module/service/module-access.service.ts +195 -195
  280. package/src/module/notification/controller/notification.controller.ts +58 -58
  281. package/src/module/notification/controller/otp.controller.ts +117 -117
  282. package/src/module/notification/entity/notification.entity.ts +26 -26
  283. package/src/module/notification/entity/otp.entity.ts +28 -28
  284. package/src/module/notification/firebase-admin.config.ts +22 -22
  285. package/src/module/notification/notification.module.ts +69 -69
  286. package/src/module/notification/repository/otp.repository.ts +27 -27
  287. package/src/module/notification/service/email.service.ts +127 -127
  288. package/src/module/notification/service/notification.service.ts +160 -160
  289. package/src/module/notification/service/otp.service.ts +133 -133
  290. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  291. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  292. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  293. package/src/module/third-party-module/third-party.module.ts +12 -12
  294. package/src/module/user/controller/login.controller.ts +198 -198
  295. package/src/module/user/controller/user.controller.ts +40 -40
  296. package/src/module/user/dto/create-user.dto.ts +62 -62
  297. package/src/module/user/dto/update-user.dto.ts +4 -4
  298. package/src/module/user/entity/role.entity.ts +33 -33
  299. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  300. package/src/module/user/entity/user-session.entity.ts +73 -73
  301. package/src/module/user/entity/user.entity.ts +59 -59
  302. package/src/module/user/repository/role.repository.ts +96 -96
  303. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  304. package/src/module/user/repository/user.repository.ts +50 -50
  305. package/src/module/user/repository/userSession.repository.ts +33 -33
  306. package/src/module/user/service/login.service.ts +326 -326
  307. package/src/module/user/service/role.service.ts +197 -197
  308. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  309. package/src/module/user/service/user-session.service.ts +168 -168
  310. package/src/module/user/service/user.service.ts +368 -368
  311. package/src/module/user/user.module.ts +65 -65
  312. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  313. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  314. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  315. package/src/module/workflow/controller/action.controller.ts +111 -111
  316. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  317. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  318. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  319. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  320. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  321. package/src/module/workflow/controller/stage.controller.ts +50 -50
  322. package/src/module/workflow/controller/task.controller.ts +77 -77
  323. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  324. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  325. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  326. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  327. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  328. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  329. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  330. package/src/module/workflow/entity/action.entity.ts +53 -53
  331. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  332. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  333. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  334. package/src/module/workflow/entity/form.entity.ts +25 -25
  335. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  336. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  337. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  338. package/src/module/workflow/entity/stage.entity.ts +20 -20
  339. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  340. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  341. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  342. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  343. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  344. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  345. package/src/module/workflow/repository/action-data.repository.ts +334 -334
  346. package/src/module/workflow/repository/action.repository.ts +338 -338
  347. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  348. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  349. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  350. package/src/module/workflow/repository/stage-group.repository.ts +197 -197
  351. package/src/module/workflow/repository/stage-movement.repository.ts +253 -246
  352. package/src/module/workflow/repository/stage.repository.ts +172 -172
  353. package/src/module/workflow/repository/task.repository.ts +134 -134
  354. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  355. package/src/module/workflow/service/action-category.service.ts +33 -33
  356. package/src/module/workflow/service/action-data.service.ts +62 -62
  357. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  358. package/src/module/workflow/service/action-template-mapping.service.ts +131 -131
  359. package/src/module/workflow/service/action.service.ts +279 -279
  360. package/src/module/workflow/service/activity-log.service.ts +107 -107
  361. package/src/module/workflow/service/comm-template.service.ts +180 -180
  362. package/src/module/workflow/service/entity-modification.service.ts +61 -61
  363. package/src/module/workflow/service/form-master.service.ts +35 -35
  364. package/src/module/workflow/service/populate-workflow.service.ts +333 -333
  365. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  366. package/src/module/workflow/service/stage-group.service.ts +342 -342
  367. package/src/module/workflow/service/stage.service.ts +199 -199
  368. package/src/module/workflow/service/task.service.ts +547 -547
  369. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  370. package/src/module/workflow/service/workflow-meta.service.ts +674 -654
  371. package/src/module/workflow/service/workflow.service.ts +209 -209
  372. package/src/module/workflow/workflow.module.ts +180 -180
  373. package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
  374. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
  375. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  376. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
  377. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  378. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  379. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  380. package/src/module/workflow-automation/service/schedule-handler.service.ts +168 -168
  381. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +224 -224
  382. package/src/module/workflow-automation/service/workflow-automation.service.ts +515 -515
  383. package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
  384. package/src/module/workflow-schedule/INSTALLATION.md +244 -244
  385. package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
  386. package/src/module/workflow-schedule/README.md +422 -422
  387. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
  388. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
  389. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
  390. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
  391. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
  392. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
  393. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
  394. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
  395. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
  396. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
  397. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
  398. package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
  399. package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -584
  400. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -600
  401. package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
  402. package/src/resources/dev.properties.yaml +31 -31
  403. package/src/resources/local.properties.yaml +27 -27
  404. package/src/resources/properties.module.ts +12 -12
  405. package/src/resources/properties.yaml.ts +11 -11
  406. package/src/resources/uat.properties.yaml +31 -31
  407. package/src/table.config.ts +133 -133
  408. package/src/utils/dto/excel-data.dto.ts +14 -14
  409. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  410. package/src/utils/service/base64util.service.ts +18 -18
  411. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  412. package/src/utils/service/codeGenerator.service.ts +22 -22
  413. package/src/utils/service/dateUtil.service.ts +17 -17
  414. package/src/utils/service/encryptUtil.service.ts +97 -97
  415. package/src/utils/service/excel-helper.service.ts +72 -72
  416. package/src/utils/service/excelUtil.service.ts +15 -15
  417. package/src/utils/service/file-util.service.ts +11 -11
  418. package/src/utils/service/json-util.service.ts +23 -23
  419. package/src/utils/service/loggingUtil.service.ts +88 -88
  420. package/src/utils/service/reflection-helper.service.ts +62 -62
  421. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  422. package/src/utils/utils.module.ts +27 -27
  423. package/tsconfig.build.json +4 -4
  424. package/tsconfig.json +24 -24
@@ -1,246 +1,253 @@
1
- import { get } from 'http';
2
- import { Injectable } from '@nestjs/common';
3
- import { InjectRepository } from '@nestjs/typeorm';
4
- import { Repository, DataSource, MoreThan } from 'typeorm';
5
- import { WorkflowLevelMappingEntity } from '../entity/workflow-level-mapping.entity';
6
- import { StageGroup } from '../entity/stage-group.entity';
7
- import { Stage } from '../entity/stage.entity';
8
- import { log } from 'console';
9
- import { UserData } from 'src/module/user/entity/user.entity';
10
-
11
- @Injectable()
12
- export class StageMovementRepository {
13
- constructor(
14
- @InjectRepository(WorkflowLevelMappingEntity)
15
- private readonly workflowLevelMappingRepo: Repository<WorkflowLevelMappingEntity>,
16
- @InjectRepository(StageGroup)
17
- private readonly stageGroupRepo: Repository<StageGroup>,
18
- @InjectRepository(Stage)
19
- private readonly stageRepo: Repository<Stage>,
20
- private readonly dataSource: DataSource,
21
- ) {}
22
-
23
- async getFirstStage({
24
- loggedInUser,
25
- mapped_entity_type,
26
- mapped_entity_id,
27
- }: {
28
- loggedInUser: any;
29
- mapped_entity_type: string;
30
- mapped_entity_id: string | number;
31
- }): Promise<any | null> {
32
- // Try finding mapping at user's level
33
- let workflowLevelMapping = await this.workflowLevelMappingRepo.findOne({
34
- where: {
35
- mapped_level_type: loggedInUser.level_type,
36
- mapped_level_id: loggedInUser.level_id,
37
- },
38
- });
39
-
40
- // If not found, fallback to organization-level mapping
41
- if (!workflowLevelMapping) {
42
- workflowLevelMapping = await this.workflowLevelMappingRepo.findOne({
43
- where: {
44
- mapped_level_type: 'ORG',
45
- mapped_level_id: loggedInUser.organization_id,
46
- },
47
- });
48
- }
49
-
50
- // If still not found, return null
51
- if (!workflowLevelMapping) return null;
52
-
53
- // Find the stage group for this workflow
54
- const stageGroup = await this.stageGroupRepo.findOne({
55
- where: {
56
- workflow_id: workflowLevelMapping.workflow_id,
57
- },
58
- order: { id: 'ASC' }, // Ensure you get the earliest/first group if needed
59
- });
60
-
61
- if (!stageGroup) return null;
62
-
63
- // Find the first stage within this group
64
- const firstStage = await this.stageRepo.findOne({
65
- where: {
66
- stage_group_id: stageGroup.id,
67
- },
68
- order: { id: 'ASC' }, // Change ordering as per your "first" logic
69
- });
70
-
71
- if (!firstStage) return null;
72
-
73
- // Return comprehensive result
74
- return {
75
- mappingUsed: workflowLevelMapping,
76
- stageGroup,
77
- firstStage,
78
- };
79
- }
80
-
81
- // async getNextStage(
82
- // stageGroupId: number,
83
- // currentStageId: number,
84
- // ): Promise<any | null> {
85
- // // 1. Get current stage to find its sequence number
86
- // const currentStage = await this.stageRepo.findOne({
87
- // where: { id: currentStageId, stage_group_id: stageGroupId },
88
- // });
89
- // if (!currentStage) return null;
90
-
91
- // // 2. Find the next stage with sequence just after the current one
92
- // const nextStage = await this.stageRepo.findOne({
93
- // where: {
94
- // stage_group_id: stageGroupId,
95
- // sequence: MoreThan(currentStage.sequence),
96
- // },
97
- // order: { sequence: 'ASC' },
98
- // });
99
-
100
- // return nextStage || null;
101
- // }
102
-
103
- // async getNextStageGroup(
104
- // currentStageGroupId: number,
105
- // ): Promise<StageGroup | null> {
106
- // // 1. Get current stage group
107
- // const currentStageGroup = await this.stageGroupRepo.findOne({
108
- // where: { id: currentStageGroupId },
109
- // });
110
- // if (!currentStageGroup) return null;
111
- // // 2. Find the next stage group with a higher sequence
112
- // const nextStageGroup = await this.stageGroupRepo.findOne({
113
- // where: {
114
- // sequence: MoreThan(currentStageGroup.sequence),
115
- // },
116
- // order: { sequence: 'ASC' }, // Get the immediate next
117
- // });
118
- // return nextStageGroup || null;
119
- // }
120
-
121
- async getNextStage(
122
- stageGroupId: number,
123
- currentStageId: number,
124
- ): Promise<any | null> {
125
- const allStages = await this.stageRepo.find({
126
- where: { stage_group_id: stageGroupId },
127
- order: { sequence: 'ASC' },
128
- });
129
-
130
- if (currentStageId === 0) return allStages.length > 0 ? allStages[0] : null;
131
-
132
- const currentStage = allStages.find((s) => s.id == currentStageId);
133
- if (!currentStage) return null;
134
-
135
- // Filter for stages with a greater sequence, then pick the smallest one
136
- const higherStages = allStages
137
- .filter((s) => s.sequence > currentStage.sequence)
138
- .sort((a, b) => a.sequence - b.sequence);
139
-
140
- return higherStages.length > 0 ? higherStages[0] : null;
141
- }
142
-
143
- async getNextStageGroup(currentStageGroupId: number): Promise<any | null> {
144
- const currentStageGroup = await this.stageGroupRepo.findOne({
145
- where: { id: currentStageGroupId },
146
- });
147
- if (!currentStageGroup) return null;
148
-
149
- //get workflow id of current stage group
150
- const workflowId = currentStageGroup.workflow_id;
151
-
152
- // Find the next stage group with a higher sequence
153
- const nextStageGroup = await this.stageGroupRepo.findOne({
154
- where: {
155
- workflow_id: workflowId,
156
- sequence: MoreThan(currentStageGroup.sequence),
157
- },
158
- order: { sequence: 'ASC' }, // Get the immediate next
159
- });
160
-
161
- return nextStageGroup || null;
162
- }
163
-
164
- async getNextStageOrFirstOfNextGroup(
165
- stageGroupId: number,
166
- currentStageId: number,
167
- ): Promise<any | null> {
168
- // 1. Try to get the next stage in same group
169
- const nextStage = await this.getNextStage(stageGroupId, currentStageId);
170
- if (nextStage) return nextStage;
171
-
172
- // 2. No next stage. Try to get next stage group
173
- const nextStageGroup = await this.getNextStageGroup(stageGroupId);
174
- if (!nextStageGroup) return null;
175
-
176
- const nextStageGroupFirstStage = await this.getNextStage(
177
- nextStageGroup.id,
178
- 0,
179
- );
180
- return nextStageGroupFirstStage || null;
181
- }
182
-
183
- async getAllActionByStageId(stageId: number): Promise<any> {
184
- const result = await this.dataSource.query(
185
- `
186
- SELECT
187
- a.*,
188
- m.id AS mapping_id,
189
- m.stage_id,
190
- ac.code AS action_category_code
191
- FROM frm_wf_action a
192
- LEFT JOIN frm_wf_stage_action_mapping m
193
- ON a.id = m.action_id::bigint
194
- LEFT JOIN frm_wf_action_category ac
195
- ON a.action_category::bigint = ac.id
196
- WHERE m.stage_id::bigint = $1
197
- `,
198
- [Number(stageId)],
199
- );
200
-
201
- // Use for..of with await instead of map
202
- for (const item of result) {
203
- if (item.action_category_code === 'SDFM') {
204
- const actionData = await this.dataSource.query(
205
- `
206
- SELECT arm.form_id
207
- FROM frm_wf_action_resources_mapping arm
208
- WHERE arm.stg_act_mapping_id = $1 and form_id IS NOT NULL
209
- LIMIT 1
210
- `,
211
- [item.mapping_id],
212
- );
213
-
214
- item.form_id = actionData[0]?.form_id || null;
215
- }
216
- }
217
-
218
- return result;
219
- }
220
-
221
- async saveActionData(action: any, loggedInUser: UserData): Promise<any> {
222
- // Implement the logic to save action data
223
-
224
- if (action.length > 0) {
225
- for (const act of action) {
226
- await this.dataSource.query(
227
- `INSERT INTO frm_wf_action_data (stage_id, user_id, action_id) VALUES ($1, $2, $3)`,
228
- [act.stage_id, loggedInUser.id, act.id],
229
- );
230
- }
231
- }
232
- }
233
-
234
- async saveTaskData(actionData: any, loggedInUser: UserData): Promise<any> {
235
- // Implement the logic to save task data
236
-
237
- if (actionData.length > 0) {
238
- for (const action of actionData) {
239
- await this.dataSource.query(
240
- `INSERT INTO frm_wf_task_data (action_id, user_id) VALUES ($1, $2)`,
241
- [action.id, loggedInUser.id],
242
- );
243
- }
244
- }
245
- }
246
- }
1
+ import { get } from 'http';
2
+ import { Injectable } from '@nestjs/common';
3
+ import { InjectRepository } from '@nestjs/typeorm';
4
+ import { Repository, DataSource, MoreThan } from 'typeorm';
5
+ import { WorkflowLevelMappingEntity } from '../entity/workflow-level-mapping.entity';
6
+ import { StageGroup } from '../entity/stage-group.entity';
7
+ import { Stage } from '../entity/stage.entity';
8
+ import { log } from 'console';
9
+ import { UserData } from 'src/module/user/entity/user.entity';
10
+ import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
11
+
12
+ @Injectable()
13
+ export class StageMovementRepository {
14
+ constructor(
15
+ @InjectRepository(WorkflowLevelMappingEntity)
16
+ private readonly workflowLevelMappingRepo: Repository<WorkflowLevelMappingEntity>,
17
+ @InjectRepository(StageGroup)
18
+ private readonly stageGroupRepo: Repository<StageGroup>,
19
+ @InjectRepository(Stage)
20
+ private readonly stageRepo: Repository<Stage>,
21
+ private readonly dataSource: DataSource,
22
+ private readonly reflectionHelper: ReflectionHelper,
23
+ ) {}
24
+
25
+ async getFirstStage({
26
+ loggedInUser,
27
+ mapped_entity_type,
28
+ mapped_entity_id,
29
+ }: {
30
+ loggedInUser: any;
31
+ mapped_entity_type: string;
32
+ mapped_entity_id: string | number;
33
+ }): Promise<any | null> {
34
+ // Try finding mapping at user's level
35
+ let workflowLevelMapping = await this.workflowLevelMappingRepo.findOne({
36
+ where: {
37
+ mapped_level_type: loggedInUser.level_type,
38
+ mapped_level_id: loggedInUser.level_id,
39
+ },
40
+ });
41
+
42
+ // If not found, fallback to organization-level mapping
43
+ if (!workflowLevelMapping) {
44
+ workflowLevelMapping = await this.workflowLevelMappingRepo.findOne({
45
+ where: {
46
+ mapped_level_type: 'ORG',
47
+ mapped_level_id: loggedInUser.organization_id,
48
+ },
49
+ });
50
+ }
51
+
52
+ // If still not found, return null
53
+ if (!workflowLevelMapping) return null;
54
+
55
+ // Find the stage group for this workflow
56
+ const stageGroup = await this.stageGroupRepo.findOne({
57
+ where: {
58
+ workflow_id: workflowLevelMapping.workflow_id,
59
+ },
60
+ order: { id: 'ASC' }, // Ensure you get the earliest/first group if needed
61
+ });
62
+
63
+ if (!stageGroup) return null;
64
+
65
+ // Find the first stage within this group
66
+ const firstStage = await this.stageRepo.findOne({
67
+ where: {
68
+ stage_group_id: stageGroup.id,
69
+ },
70
+ order: { id: 'ASC' }, // Change ordering as per your "first" logic
71
+ });
72
+
73
+ if (!firstStage) return null;
74
+
75
+ // Return comprehensive result
76
+ return {
77
+ mappingUsed: workflowLevelMapping,
78
+ stageGroup,
79
+ firstStage,
80
+ };
81
+ }
82
+
83
+ // async getNextStage(
84
+ // stageGroupId: number,
85
+ // currentStageId: number,
86
+ // ): Promise<any | null> {
87
+ // // 1. Get current stage to find its sequence number
88
+ // const currentStage = await this.stageRepo.findOne({
89
+ // where: { id: currentStageId, stage_group_id: stageGroupId },
90
+ // });
91
+ // if (!currentStage) return null;
92
+
93
+ // // 2. Find the next stage with sequence just after the current one
94
+ // const nextStage = await this.stageRepo.findOne({
95
+ // where: {
96
+ // stage_group_id: stageGroupId,
97
+ // sequence: MoreThan(currentStage.sequence),
98
+ // },
99
+ // order: { sequence: 'ASC' },
100
+ // });
101
+
102
+ // return nextStage || null;
103
+ // }
104
+
105
+ // async getNextStageGroup(
106
+ // currentStageGroupId: number,
107
+ // ): Promise<StageGroup | null> {
108
+ // // 1. Get current stage group
109
+ // const currentStageGroup = await this.stageGroupRepo.findOne({
110
+ // where: { id: currentStageGroupId },
111
+ // });
112
+ // if (!currentStageGroup) return null;
113
+ // // 2. Find the next stage group with a higher sequence
114
+ // const nextStageGroup = await this.stageGroupRepo.findOne({
115
+ // where: {
116
+ // sequence: MoreThan(currentStageGroup.sequence),
117
+ // },
118
+ // order: { sequence: 'ASC' }, // Get the immediate next
119
+ // });
120
+ // return nextStageGroup || null;
121
+ // }
122
+
123
+ async getNextStage(
124
+ stageGroupId: number,
125
+ currentStageId: number,
126
+ ): Promise<any | null> {
127
+ const allStages = await this.stageRepo.find({
128
+ where: { stage_group_id: stageGroupId },
129
+ order: { sequence: 'ASC' },
130
+ });
131
+
132
+ if (currentStageId === 0) return allStages.length > 0 ? allStages[0] : null;
133
+
134
+ const currentStage = allStages.find((s) => s.id == currentStageId);
135
+ if (!currentStage) return null;
136
+
137
+ // Filter for stages with a greater sequence, then pick the smallest one
138
+ const higherStages = allStages
139
+ .filter((s) => s.sequence > currentStage.sequence)
140
+ .sort((a, b) => a.sequence - b.sequence);
141
+
142
+ return higherStages.length > 0 ? higherStages[0] : null;
143
+ }
144
+
145
+ async getNextStageGroup(currentStageGroupId: number): Promise<any | null> {
146
+ const currentStageGroup = await this.stageGroupRepo.findOne({
147
+ where: { id: currentStageGroupId },
148
+ });
149
+ if (!currentStageGroup) return null;
150
+
151
+ //get workflow id of current stage group
152
+ const workflowId = currentStageGroup.workflow_id;
153
+
154
+ // Find the next stage group with a higher sequence
155
+ const nextStageGroup = await this.stageGroupRepo.findOne({
156
+ where: {
157
+ workflow_id: workflowId,
158
+ sequence: MoreThan(currentStageGroup.sequence),
159
+ },
160
+ order: { sequence: 'ASC' }, // Get the immediate next
161
+ });
162
+
163
+ return nextStageGroup || null;
164
+ }
165
+
166
+ async getNextStageOrFirstOfNextGroup(
167
+ stageGroupId: number,
168
+ currentStageId: number,
169
+ ): Promise<any | null> {
170
+ // 1. Try to get the next stage in same group
171
+ const nextStage = await this.getNextStage(stageGroupId, currentStageId);
172
+ if (nextStage) return nextStage;
173
+
174
+ // 2. No next stage. Try to get next stage group
175
+ const nextStageGroup = await this.getNextStageGroup(stageGroupId);
176
+ if (!nextStageGroup) return null;
177
+
178
+ const nextStageGroupFirstStage = await this.getNextStage(
179
+ nextStageGroup.id,
180
+ 0,
181
+ );
182
+ return nextStageGroupFirstStage || null;
183
+ }
184
+
185
+ async getAllActionByStageId(stageId: number): Promise<any> {
186
+
187
+ const actionRepo = this.reflectionHelper.getRepoService('ActionEntity');
188
+ const result = await actionRepo
189
+ .createQueryBuilder("a")
190
+ .leftJoin(
191
+ "frm_wf_stage_action_mapping",
192
+ "m",
193
+ "a.id = m.action_id::bigint"
194
+ )
195
+ .leftJoin(
196
+ "frm_wf_action_category",
197
+ "ac",
198
+ "a.action_category::bigint = ac.id"
199
+ )
200
+ .where("m.stage_id::bigint = :stageId", { stageId: Number(stageId) })
201
+ .select([
202
+ "a.*", // select all columns from action table
203
+ "m.id AS mapping_id",
204
+ "m.stage_id",
205
+ "ac.code AS action_category_code",
206
+ ])
207
+ .orderBy("a.sequence", "ASC")
208
+ .getRawMany();
209
+
210
+ // Use for..of with await instead of map
211
+ const actionResourceMappingRepo = this.reflectionHelper.getRepoService('ActionResourcesMapping');
212
+ for (const item of result) {
213
+ if (item.action_category_code === 'SDFM') {
214
+ const actionData = await actionResourceMappingRepo.findOne({
215
+ where: {
216
+ stg_act_mapping_id: item.mapping_id
217
+ }
218
+ })
219
+
220
+
221
+ item.form_id = actionData?.form_id || null;
222
+ }
223
+ }
224
+
225
+ return result;
226
+ }
227
+
228
+ async saveActionData(action: any, loggedInUser: UserData): Promise<any> {
229
+ // Implement the logic to save action data
230
+
231
+ if (action.length > 0) {
232
+ for (const act of action) {
233
+ await this.dataSource.query(
234
+ `INSERT INTO frm_wf_action_data (stage_id, user_id, action_id) VALUES ($1, $2, $3)`,
235
+ [act.stage_id, loggedInUser.id, act.id],
236
+ );
237
+ }
238
+ }
239
+ }
240
+
241
+ async saveTaskData(actionData: any, loggedInUser: UserData): Promise<any> {
242
+ // Implement the logic to save task data
243
+
244
+ if (actionData.length > 0) {
245
+ for (const action of actionData) {
246
+ await this.dataSource.query(
247
+ `INSERT INTO frm_wf_task_data (action_id, user_id) VALUES ($1, $2)`,
248
+ [action.id, loggedInUser.id],
249
+ );
250
+ }
251
+ }
252
+ }
253
+ }