rez_core 3.1.199 → 3.1.200

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 (393) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  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 +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  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 +7 -7
  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 +25 -25
  24. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  25. package/dist/module/listmaster/service/list-master.service.js +2 -2
  26. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  27. package/dist/module/mapper/service/mapper.service.js +2 -2
  28. package/dist/module/meta/controller/media.controller.d.ts +3 -0
  29. package/dist/module/meta/controller/media.controller.js +15 -0
  30. package/dist/module/meta/controller/media.controller.js.map +1 -1
  31. package/dist/module/meta/entity/entity-master.entity.d.ts +2 -0
  32. package/dist/module/meta/entity/entity-master.entity.js +8 -0
  33. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  34. package/dist/module/meta/service/entity-dynamic.service.js +18 -18
  35. package/dist/module/meta/service/entity-list.service.js +3 -3
  36. package/dist/module/meta/service/entity-master.service.js +3 -3
  37. package/dist/module/meta/service/entity-relation.service.js +11 -11
  38. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  39. package/dist/module/meta/service/media-data.service.d.ts +5 -1
  40. package/dist/module/meta/service/media-data.service.js +59 -2
  41. package/dist/module/meta/service/media-data.service.js.map +1 -1
  42. package/dist/module/meta/service/resolver.service.js +3 -3
  43. package/dist/module/module/repository/menu.repository.js +12 -12
  44. package/dist/module/notification/service/notification.service.js +9 -9
  45. package/dist/module/user/controller/login.controller.js +18 -18
  46. package/dist/module/user/service/role.service.js +4 -4
  47. package/dist/module/user/service/user-session.service.js +2 -2
  48. package/dist/module/workflow/repository/action.repository.js +16 -16
  49. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  50. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  51. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  52. package/dist/module/workflow/repository/stage-movement.repository.js +11 -11
  53. package/dist/module/workflow/repository/stage.repository.js +8 -8
  54. package/dist/module/workflow/service/action-template-mapping.service.js +10 -10
  55. package/dist/module/workflow/service/action.service.js +7 -7
  56. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  57. package/dist/module/workflow/service/stage-group.service.js +2 -2
  58. package/dist/module/workflow/service/stage.service.js +2 -2
  59. package/dist/module/workflow/service/task.service.js +28 -28
  60. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  61. package/dist/module/workflow/service/workflow-meta.service.js +50 -50
  62. package/dist/module/workflow/service/workflow.service.js +2 -2
  63. package/dist/tsconfig.build.tsbuildinfo +1 -1
  64. package/dist/utils/service/reflection-helper.service.js +2 -2
  65. package/docs/modules/event-driven-integration-design.md +91 -91
  66. package/docs/modules/integration.md +250 -250
  67. package/eslint.config.mjs +34 -34
  68. package/nest-cli.json +14 -14
  69. package/package.json +118 -118
  70. package/server.log +850 -0
  71. package/src/app.controller.ts +12 -12
  72. package/src/app.module.ts +49 -49
  73. package/src/app.service.ts +8 -8
  74. package/src/config/config.module.ts +18 -18
  75. package/src/config/database.config.ts +23 -23
  76. package/src/constant/global.constant.ts +67 -67
  77. package/src/core.module.ts +81 -81
  78. package/src/decorators/roles.decorator.ts +7 -7
  79. package/src/dtos/response.dto.ts +6 -6
  80. package/src/dtos/response.ts +5 -5
  81. package/src/index.ts +1 -1
  82. package/src/module/auth/auth.module.ts +49 -49
  83. package/src/module/auth/controller/auth.controller.ts +28 -28
  84. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  85. package/src/module/auth/guards/jwt.guard.ts +22 -22
  86. package/src/module/auth/guards/role.guard.ts +68 -68
  87. package/src/module/auth/services/auth.service.ts +50 -50
  88. package/src/module/auth/services/jwt.service.ts +11 -11
  89. package/src/module/auth/strategies/google.strategy.ts +54 -54
  90. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  91. package/src/module/auth/strategies/local.strategy.ts +13 -13
  92. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  93. package/src/module/dashboard/dashboard.module.ts +21 -21
  94. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  95. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  96. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  97. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  98. package/src/module/dev/dev.module.ts +12 -12
  99. package/src/module/dev/service/dev.service.ts +7 -7
  100. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  101. package/src/module/enterprise/enterprise.module.ts +30 -30
  102. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  103. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  104. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  105. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  106. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  107. package/src/module/enterprise/repository/school.repository.ts +281 -281
  108. package/src/module/enterprise/service/brand.service.ts +5 -5
  109. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  110. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  111. package/src/module/enterprise/service/organization.service.ts +145 -145
  112. package/src/module/filter/controller/filter.controller.ts +84 -84
  113. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  114. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  115. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  116. package/src/module/filter/filter.module.ts +31 -31
  117. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  118. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  119. package/src/module/filter/service/filter.service.ts +868 -868
  120. package/src/module/filter/service/saved-filter.service.ts +170 -170
  121. package/src/module/ics/controller/ics.controller.ts +21 -21
  122. package/src/module/ics/dto/ics.dto.ts +55 -55
  123. package/src/module/ics/ics.module.ts +13 -13
  124. package/src/module/ics/service/ics.service.ts +57 -57
  125. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  126. package/src/module/integration/controller/integration.controller.ts +662 -662
  127. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  128. package/src/module/integration/dto/create-config.dto.ts +526 -526
  129. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  130. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  131. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  132. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  133. package/src/module/integration/examples/usage.example.ts +338 -338
  134. package/src/module/integration/factories/base.factory.ts +7 -7
  135. package/src/module/integration/factories/email.factory.ts +49 -49
  136. package/src/module/integration/factories/integration.factory.ts +121 -121
  137. package/src/module/integration/factories/sms.factory.ts +51 -51
  138. package/src/module/integration/factories/telephone.factory.ts +41 -41
  139. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  140. package/src/module/integration/integration.module.ts +110 -110
  141. package/src/module/integration/service/calendar-event.service.ts +118 -118
  142. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  143. package/src/module/integration/service/integration-queue.service.ts +229 -229
  144. package/src/module/integration/service/integration.service.ts +2572 -2572
  145. package/src/module/integration/service/oauth.service.ts +224 -224
  146. package/src/module/integration/service/wrapper.service.ts +457 -457
  147. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  148. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  149. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  150. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  151. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  152. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  153. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  154. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  155. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  156. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  157. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  158. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  159. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  160. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  161. package/src/module/layout/controller/layout.controller.ts +47 -47
  162. package/src/module/layout/entity/header-items.entity.ts +28 -28
  163. package/src/module/layout/entity/header-section.entity.ts +19 -19
  164. package/src/module/layout/layout.module.ts +21 -21
  165. package/src/module/layout/repository/header-items.repository.ts +18 -18
  166. package/src/module/layout/repository/header-section.repository.ts +22 -22
  167. package/src/module/layout/service/header-section.service.ts +25 -25
  168. package/src/module/layout_preference/controller/layout_preference.controller.ts +47 -47
  169. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  170. package/src/module/layout_preference/layout_preference.module.ts +18 -18
  171. package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
  172. package/src/module/layout_preference/service/layout_preference.service.ts +172 -172
  173. package/src/module/lead/controller/lead.controller.ts +30 -30
  174. package/src/module/lead/lead.module.ts +14 -14
  175. package/src/module/lead/repository/lead.repository.ts +41 -41
  176. package/src/module/lead/service/lead.service.ts +54 -54
  177. package/src/module/listmaster/controller/list-master.controller.ts +187 -187
  178. package/src/module/listmaster/entity/list-master-items.entity.ts +41 -41
  179. package/src/module/listmaster/entity/list-master.entity.ts +32 -32
  180. package/src/module/listmaster/listmaster.module.ts +44 -44
  181. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  182. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  183. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  184. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  185. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  186. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  187. package/src/module/listmaster/service/list-master.service.ts +424 -424
  188. package/src/module/mapper/controller/field-mapper.controller.ts +69 -69
  189. package/src/module/mapper/controller/mapper.controller.ts +15 -15
  190. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  191. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  192. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  193. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  194. package/src/module/mapper/mapper.module.ts +34 -34
  195. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  196. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  197. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  198. package/src/module/mapper/service/field-mapper.service.ts +245 -245
  199. package/src/module/mapper/service/mapper.service.ts +79 -79
  200. package/src/module/master/controller/master.controller.ts +74 -74
  201. package/src/module/master/service/master.service.ts +483 -483
  202. package/src/module/meta/controller/app-master.controller.ts +38 -38
  203. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  204. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  205. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  206. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  207. package/src/module/meta/controller/entity.controller.ts +385 -385
  208. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  209. package/src/module/meta/controller/media.controller.ts +92 -82
  210. package/src/module/meta/controller/meta.controller.ts +96 -96
  211. package/src/module/meta/controller/view-master.controller.ts +86 -86
  212. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  213. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  214. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  215. package/src/module/meta/entity/app-master.entity.ts +34 -34
  216. package/src/module/meta/entity/attribute-master.entity.ts +87 -87
  217. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  218. package/src/module/meta/entity/entity-master.entity.ts +84 -78
  219. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  220. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  221. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  222. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  223. package/src/module/meta/entity/media-data.entity.ts +32 -32
  224. package/src/module/meta/entity/preference.entity.ts +62 -62
  225. package/src/module/meta/entity/view-master.entity.ts +41 -41
  226. package/src/module/meta/entity.module.ts +158 -158
  227. package/src/module/meta/repository/app-master.repository.ts +20 -20
  228. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  229. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  230. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  231. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  232. package/src/module/meta/repository/media-data.repository.ts +50 -50
  233. package/src/module/meta/repository/preference.repository.ts +20 -20
  234. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  235. package/src/module/meta/repository/view-master.repository.ts +42 -42
  236. package/src/module/meta/service/app-master.service.ts +37 -37
  237. package/src/module/meta/service/attribute-master.service.ts +117 -117
  238. package/src/module/meta/service/common.service.ts +9 -9
  239. package/src/module/meta/service/entity-dynamic.service.ts +762 -762
  240. package/src/module/meta/service/entity-list.service.ts +205 -205
  241. package/src/module/meta/service/entity-master.service.ts +164 -164
  242. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  243. package/src/module/meta/service/entity-relation.service.ts +69 -69
  244. package/src/module/meta/service/entity-service-impl.service.ts +524 -524
  245. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  246. package/src/module/meta/service/entity-table.service.ts +150 -150
  247. package/src/module/meta/service/entity-validation.service.ts +185 -185
  248. package/src/module/meta/service/entity.service.ts +67 -67
  249. package/src/module/meta/service/field-group.service.ts +103 -103
  250. package/src/module/meta/service/media-data.service.ts +240 -149
  251. package/src/module/meta/service/populate-meta.service.ts +173 -173
  252. package/src/module/meta/service/preference.service.ts +16 -16
  253. package/src/module/meta/service/resolver.service.ts +240 -240
  254. package/src/module/meta/service/section-master.service.ts +104 -104
  255. package/src/module/meta/service/update-form-json.service.ts +22 -22
  256. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  257. package/src/module/meta/service/view-master.service.ts +111 -111
  258. package/src/module/module/controller/menu.controller.ts +15 -15
  259. package/src/module/module/controller/module-access.controller.ts +134 -134
  260. package/src/module/module/entity/menu.entity.ts +43 -43
  261. package/src/module/module/entity/module-access.entity.ts +25 -25
  262. package/src/module/module/entity/module-action.entity.ts +17 -17
  263. package/src/module/module/entity/module.entity.ts +52 -52
  264. package/src/module/module/module.module.ts +42 -42
  265. package/src/module/module/repository/menu.repository.ts +184 -184
  266. package/src/module/module/repository/module-access.repository.ts +344 -344
  267. package/src/module/module/service/menu.service.ts +82 -82
  268. package/src/module/module/service/module-access.service.ts +209 -209
  269. package/src/module/notification/controller/notification.controller.ts +58 -58
  270. package/src/module/notification/controller/otp.controller.ts +117 -117
  271. package/src/module/notification/entity/notification.entity.ts +26 -26
  272. package/src/module/notification/entity/otp.entity.ts +28 -28
  273. package/src/module/notification/firebase-admin.config.ts +22 -22
  274. package/src/module/notification/notification.module.ts +69 -69
  275. package/src/module/notification/repository/otp.repository.ts +27 -27
  276. package/src/module/notification/service/email.service.ts +127 -127
  277. package/src/module/notification/service/notification.service.ts +164 -164
  278. package/src/module/notification/service/otp.service.ts +132 -132
  279. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  280. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  281. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  282. package/src/module/third-party-module/third-party.module.ts +12 -12
  283. package/src/module/user/controller/login.controller.ts +197 -197
  284. package/src/module/user/controller/user.controller.ts +40 -40
  285. package/src/module/user/dto/create-user.dto.ts +62 -62
  286. package/src/module/user/dto/update-user.dto.ts +4 -4
  287. package/src/module/user/entity/role.entity.ts +33 -33
  288. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  289. package/src/module/user/entity/user-session.entity.ts +61 -61
  290. package/src/module/user/entity/user.entity.ts +71 -71
  291. package/src/module/user/repository/role.repository.ts +96 -96
  292. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  293. package/src/module/user/repository/user.repository.ts +50 -50
  294. package/src/module/user/repository/userSession.repository.ts +33 -33
  295. package/src/module/user/service/login.service.ts +280 -280
  296. package/src/module/user/service/role.service.ts +189 -189
  297. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  298. package/src/module/user/service/user-session.service.ts +168 -168
  299. package/src/module/user/service/user.service.ts +353 -353
  300. package/src/module/user/user.module.ts +65 -65
  301. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  302. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  303. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  304. package/src/module/workflow/controller/action.controller.ts +95 -95
  305. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  306. package/src/module/workflow/controller/comm-template.controller.ts +41 -41
  307. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  308. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  309. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  310. package/src/module/workflow/controller/stage.controller.ts +50 -50
  311. package/src/module/workflow/controller/task.controller.ts +77 -77
  312. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  313. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  314. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  315. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  316. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  317. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  318. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  319. package/src/module/workflow/entity/action.entity.ts +50 -50
  320. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  321. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  322. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  323. package/src/module/workflow/entity/form.entity.ts +25 -25
  324. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  325. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  326. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  327. package/src/module/workflow/entity/stage.entity.ts +20 -20
  328. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  329. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  330. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  331. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  332. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  333. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  334. package/src/module/workflow/repository/action-data.repository.ts +242 -242
  335. package/src/module/workflow/repository/action.repository.ts +277 -277
  336. package/src/module/workflow/repository/activity-log.repository.ts +149 -149
  337. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  338. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  339. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  340. package/src/module/workflow/repository/stage-movement.repository.ts +227 -227
  341. package/src/module/workflow/repository/stage.repository.ts +172 -172
  342. package/src/module/workflow/repository/task.repository.ts +117 -117
  343. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  344. package/src/module/workflow/service/action-category.service.ts +33 -33
  345. package/src/module/workflow/service/action-data.service.ts +62 -62
  346. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  347. package/src/module/workflow/service/action-template-mapping.service.ts +55 -55
  348. package/src/module/workflow/service/action.service.ts +263 -263
  349. package/src/module/workflow/service/activity-log.service.ts +107 -107
  350. package/src/module/workflow/service/comm-template.service.ts +176 -176
  351. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  352. package/src/module/workflow/service/form-master.service.ts +35 -35
  353. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  354. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  355. package/src/module/workflow/service/stage-group.service.ts +307 -307
  356. package/src/module/workflow/service/stage.service.ts +199 -199
  357. package/src/module/workflow/service/task.service.ts +561 -561
  358. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  359. package/src/module/workflow/service/workflow-meta.service.ts +581 -581
  360. package/src/module/workflow/service/workflow.service.ts +205 -205
  361. package/src/module/workflow/workflow.module.ts +174 -174
  362. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  363. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  364. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  365. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  366. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  367. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  368. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  369. package/src/module/workflow-automation/service/workflow-automation.service.ts +345 -345
  370. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  371. package/src/resources/dev.properties.yaml +30 -30
  372. package/src/resources/local.properties.yaml +27 -27
  373. package/src/resources/properties.module.ts +12 -12
  374. package/src/resources/properties.yaml.ts +11 -11
  375. package/src/resources/uat.properties.yaml +15 -15
  376. package/src/utils/dto/excel-data.dto.ts +14 -14
  377. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  378. package/src/utils/service/base64util.service.ts +18 -18
  379. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  380. package/src/utils/service/codeGenerator.service.ts +22 -22
  381. package/src/utils/service/dateUtil.service.ts +17 -17
  382. package/src/utils/service/encryptUtil.service.ts +97 -97
  383. package/src/utils/service/excel-helper.service.ts +72 -72
  384. package/src/utils/service/excelUtil.service.ts +15 -15
  385. package/src/utils/service/file-util.service.ts +11 -11
  386. package/src/utils/service/json-util.service.ts +23 -23
  387. package/src/utils/service/loggingUtil.service.ts +34 -34
  388. package/src/utils/service/reflection-helper.service.ts +62 -62
  389. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  390. package/src/utils/utils.module.ts +25 -25
  391. package/tsconfig.build.json +4 -4
  392. package/tsconfig.json +24 -24
  393. package/.vscode/extensions.json +0 -5
@@ -1,242 +1,242 @@
1
- import { BadRequestException, Injectable } from '@nestjs/common';
2
- import { InjectRepository } from '@nestjs/typeorm';
3
- import { ActionDataEntity } from '../entity/action-data.entity';
4
- import { DataSource, LessThan, Repository } from 'typeorm';
5
- import { UserData } from 'src/module/user/entity/user.entity';
6
- import { FormDataEntity } from '../entity/form.entity';
7
- import { TaskDataEntity } from '../entity/task-data.entity';
8
- import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
9
- import { FORM_STATUS_TO_BE_SENT } from 'src/constant/global.constant';
10
-
11
- @Injectable()
12
- export class ActionDataRepository extends EntityServiceImpl {
13
- constructor(
14
- @InjectRepository(ActionDataEntity)
15
- private readonly actionDataRepo: Repository<ActionDataEntity>,
16
- private readonly dataSource: DataSource,
17
- // @InjectRepository(FormDataEntity)
18
- // private readonly formRepo: Repository<FormDataEntity>,
19
- @InjectRepository(TaskDataEntity)
20
- private readonly TaskRepository: Repository<TaskDataEntity>,
21
- ) {
22
- super();
23
- }
24
-
25
- async saveActionData(
26
- action: any,
27
- loggedInUser: UserData,
28
- mapped_entity_id,
29
- mapped_entity_type,
30
- ): Promise<any> {
31
- if (!action?.length) return;
32
-
33
- // Find the action with the lowest sequence
34
- const minSequence = Math.min(...action.map((a) => a.sequence));
35
-
36
- if (action.length > 0) {
37
- for (const act of action) {
38
- const is_mandatory = await this.dataSource.query(
39
- `SELECT code FROM cr_list_master_items WHERE id = ? and organization_id = ? LIMIT 1;`,
40
- [act.action_requirement, loggedInUser.organization_id],
41
- );
42
- const isFirst = act.sequence == minSequence;
43
- const actionData = this.actionDataRepo.create({
44
- stage_id: act.stage_id,
45
- user_id: loggedInUser.id,
46
- action_id: act.id,
47
- sequence: act.sequence,
48
- name: act.name,
49
- organization_id: loggedInUser.organization_id,
50
- mapped_entity_id,
51
- mapped_entity_type,
52
- is_current: isFirst ? 'Y' : null,
53
- start_time: isFirst ? new Date() : null,
54
- is_mandatory: is_mandatory[0]?.code === 'mandatory' ? true : false,
55
- category: act?.action_category_code,
56
- } as ActionDataEntity);
57
- await this.actionDataRepo.save(actionData);
58
-
59
- // SEND ANY FORM
60
- // if the action_category_code is 'SDFM', create a entry in crm_lead_form table
61
- if (act?.action_category_code === 'SDFM') {
62
- const data = {
63
- entity_type: 'LFRM',
64
- stage_id: act.stage_id,
65
- mapped_entity_type,
66
- mapped_entity_id,
67
- view_id: act.form_id,
68
- status: FORM_STATUS_TO_BE_SENT,
69
- action_id: act.id,
70
- };
71
-
72
- const createdEntity = await super.createEntity(
73
- data as any,
74
- loggedInUser,
75
- );
76
- // THEN INSERT SDFM IN RELATION TASK TABLE
77
-
78
- let relationData = await this.dataSource.query(
79
- `SELECT * FROM cr_entity_relation WHERE source_entity_type = ? AND target_entity_type = ?`,
80
- [createdEntity.mapped_entity_type, createdEntity.entity_type],
81
- );
82
-
83
- if (relationData) {
84
- await this.dataSource.query(
85
- `INSERT INTO cr_entity_relation_data (organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type) VALUES (?, ?, ?, ?, ?,?)`,
86
- [
87
- loggedInUser.organization_id,
88
- createdEntity.mapped_entity_id,
89
- createdEntity.mapped_entity_type,
90
- createdEntity.id,
91
- createdEntity.entity_type,
92
- relationData[0]?.relation_type,
93
- ],
94
- );
95
- }
96
- }
97
- }
98
- }
99
- }
100
-
101
- async updateActionStatus(
102
- loggedInUser: UserData,
103
- mapped_entity_type: string,
104
- mapped_entity_id: number,
105
- stage_id: number,
106
- action_id: number,
107
- ): Promise<any> {
108
- const actionData = await this.actionDataRepo.findOne({
109
- where: {
110
- mapped_entity_type,
111
- mapped_entity_id,
112
- stage_id,
113
- action_id,
114
- },
115
- });
116
-
117
- if (!actionData) return;
118
-
119
- actionData.end_time = new Date();
120
- actionData.modified_by = loggedInUser.id;
121
- actionData.modified_date = new Date();
122
- actionData.is_done = true;
123
- actionData.is_current = 'N'; // Mark as not current
124
-
125
- // Save the updated action
126
- await this.actionDataRepo.update(actionData.id, actionData);
127
-
128
- // NOW, ACTIVATE THE NEXT ACTION (moveNextActionData logic here)
129
- // Find next sequence action for the same entity/stage
130
- const allActionData = await this.actionDataRepo.find({
131
- where: { mapped_entity_type, mapped_entity_id, stage_id },
132
- order: { sequence: 'ASC' },
133
- });
134
-
135
- // Find the action with the next higher sequence number
136
- const nextAction = allActionData.find(
137
- (a) => a.sequence > actionData.sequence,
138
- );
139
- if (nextAction && nextAction.is_current !== 'Y') {
140
- nextAction.is_current = 'Y';
141
- nextAction.start_time = new Date();
142
- nextAction.modified_by = loggedInUser.id;
143
- nextAction.modified_date = new Date();
144
- await this.actionDataRepo.update(nextAction.id, nextAction);
145
- }
146
-
147
- // Optionally return both for audit
148
- return { finished: actionData, activated: nextAction ?? null };
149
- }
150
-
151
- async resubmitAction(
152
- organization_id: number,
153
- mapped_entity_type: string,
154
- mapped_entity_id: number,
155
- stage_id: number,
156
- action_id: number,
157
- ) {
158
- // Get the current active action
159
- const currentAction = await this.actionDataRepo.findOne({
160
- where: {
161
- organization_id,
162
- stage_id,
163
- mapped_entity_id,
164
- mapped_entity_type,
165
- action_id,
166
- is_current: 'Y',
167
- },
168
- });
169
-
170
- if (!currentAction) {
171
- // skip
172
- return;
173
- }
174
-
175
- // Find the immediate previous action in the sequence
176
- const previousAction = await this.actionDataRepo.findOne({
177
- where: {
178
- organization_id,
179
- stage_id,
180
- mapped_entity_id,
181
- mapped_entity_type,
182
- sequence: LessThan(currentAction.sequence),
183
- },
184
- order: { sequence: 'DESC' }, // immediate previous
185
- });
186
-
187
- if (!previousAction) {
188
- // no previous action means we cannot resubmit
189
- return;
190
- }
191
-
192
- // Unset current action
193
- currentAction.is_current = null as any;
194
- currentAction.modified_date = new Date();
195
- currentAction.modified_by = organization_id;
196
- currentAction.start_time = null as any;
197
- currentAction.resubmit_count = (currentAction.resubmit_count ?? 0) + 1;
198
-
199
- await this.actionDataRepo.update(currentAction.id, currentAction);
200
-
201
- // Mark previous action as current again
202
- previousAction.is_current = 'Y';
203
- previousAction.modified_date = new Date();
204
- previousAction.modified_by = organization_id;
205
- previousAction.end_time = null as any; // Reset end time
206
- previousAction.is_done = false;
207
- await this.actionDataRepo.update(previousAction.id, previousAction);
208
-
209
- // reverse the status of tasks for the previous action
210
- const tasksForPrevAction = await this.TaskRepository.find({
211
- where: {
212
- action_id: String(previousAction.action_id),
213
- mapped_entity_type,
214
- mapped_entity_id,
215
- stage_id: String(previousAction.stage_id),
216
- is_done: true,
217
- },
218
- });
219
-
220
- if (tasksForPrevAction.length > 0) {
221
- for (const task of tasksForPrevAction) {
222
- task.modified_date = new Date();
223
- task.is_done = false;
224
-
225
- // Reset status (optional: set to something like 'pending' if needed)
226
- const pendingListMasterItemId = await this.dataSource.query(
227
- `SELECT id FROM cr_list_master_items WHERE code = 'in_progress' AND organization_id = ? AND listtype = 'TKST' LIMIT 1;`,
228
- [organization_id],
229
- );
230
- task.status = pendingListMasterItemId[0]?.id ?? task.status;
231
-
232
- await this.TaskRepository.update(task.id, task);
233
- }
234
- }
235
-
236
- return {
237
- message: 'Action resubmitted successfully',
238
- revertedTo: previousAction,
239
- updated: currentAction,
240
- };
241
- }
242
- }
1
+ import { BadRequestException, Injectable } from '@nestjs/common';
2
+ import { InjectRepository } from '@nestjs/typeorm';
3
+ import { ActionDataEntity } from '../entity/action-data.entity';
4
+ import { DataSource, LessThan, Repository } from 'typeorm';
5
+ import { UserData } from 'src/module/user/entity/user.entity';
6
+ import { FormDataEntity } from '../entity/form.entity';
7
+ import { TaskDataEntity } from '../entity/task-data.entity';
8
+ import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
9
+ import { FORM_STATUS_TO_BE_SENT } from 'src/constant/global.constant';
10
+
11
+ @Injectable()
12
+ export class ActionDataRepository extends EntityServiceImpl {
13
+ constructor(
14
+ @InjectRepository(ActionDataEntity)
15
+ private readonly actionDataRepo: Repository<ActionDataEntity>,
16
+ private readonly dataSource: DataSource,
17
+ // @InjectRepository(FormDataEntity)
18
+ // private readonly formRepo: Repository<FormDataEntity>,
19
+ @InjectRepository(TaskDataEntity)
20
+ private readonly TaskRepository: Repository<TaskDataEntity>,
21
+ ) {
22
+ super();
23
+ }
24
+
25
+ async saveActionData(
26
+ action: any,
27
+ loggedInUser: UserData,
28
+ mapped_entity_id,
29
+ mapped_entity_type,
30
+ ): Promise<any> {
31
+ if (!action?.length) return;
32
+
33
+ // Find the action with the lowest sequence
34
+ const minSequence = Math.min(...action.map((a) => a.sequence));
35
+
36
+ if (action.length > 0) {
37
+ for (const act of action) {
38
+ const is_mandatory = await this.dataSource.query(
39
+ `SELECT code FROM cr_list_master_items WHERE id = ? and organization_id = ? LIMIT 1;`,
40
+ [act.action_requirement, loggedInUser.organization_id],
41
+ );
42
+ const isFirst = act.sequence == minSequence;
43
+ const actionData = this.actionDataRepo.create({
44
+ stage_id: act.stage_id,
45
+ user_id: loggedInUser.id,
46
+ action_id: act.id,
47
+ sequence: act.sequence,
48
+ name: act.name,
49
+ organization_id: loggedInUser.organization_id,
50
+ mapped_entity_id,
51
+ mapped_entity_type,
52
+ is_current: isFirst ? 'Y' : null,
53
+ start_time: isFirst ? new Date() : null,
54
+ is_mandatory: is_mandatory[0]?.code === 'mandatory' ? true : false,
55
+ category: act?.action_category_code,
56
+ } as ActionDataEntity);
57
+ await this.actionDataRepo.save(actionData);
58
+
59
+ // SEND ANY FORM
60
+ // if the action_category_code is 'SDFM', create a entry in crm_lead_form table
61
+ if (act?.action_category_code === 'SDFM') {
62
+ const data = {
63
+ entity_type: 'LFRM',
64
+ stage_id: act.stage_id,
65
+ mapped_entity_type,
66
+ mapped_entity_id,
67
+ view_id: act.form_id,
68
+ status: FORM_STATUS_TO_BE_SENT,
69
+ action_id: act.id,
70
+ };
71
+
72
+ const createdEntity = await super.createEntity(
73
+ data as any,
74
+ loggedInUser,
75
+ );
76
+ // THEN INSERT SDFM IN RELATION TASK TABLE
77
+
78
+ let relationData = await this.dataSource.query(
79
+ `SELECT * FROM cr_entity_relation WHERE source_entity_type = ? AND target_entity_type = ?`,
80
+ [createdEntity.mapped_entity_type, createdEntity.entity_type],
81
+ );
82
+
83
+ if (relationData) {
84
+ await this.dataSource.query(
85
+ `INSERT INTO cr_entity_relation_data (organization_id, source_entity_id, source_entity_type, target_entity_id, target_entity_type, relation_type) VALUES (?, ?, ?, ?, ?,?)`,
86
+ [
87
+ loggedInUser.organization_id,
88
+ createdEntity.mapped_entity_id,
89
+ createdEntity.mapped_entity_type,
90
+ createdEntity.id,
91
+ createdEntity.entity_type,
92
+ relationData[0]?.relation_type,
93
+ ],
94
+ );
95
+ }
96
+ }
97
+ }
98
+ }
99
+ }
100
+
101
+ async updateActionStatus(
102
+ loggedInUser: UserData,
103
+ mapped_entity_type: string,
104
+ mapped_entity_id: number,
105
+ stage_id: number,
106
+ action_id: number,
107
+ ): Promise<any> {
108
+ const actionData = await this.actionDataRepo.findOne({
109
+ where: {
110
+ mapped_entity_type,
111
+ mapped_entity_id,
112
+ stage_id,
113
+ action_id,
114
+ },
115
+ });
116
+
117
+ if (!actionData) return;
118
+
119
+ actionData.end_time = new Date();
120
+ actionData.modified_by = loggedInUser.id;
121
+ actionData.modified_date = new Date();
122
+ actionData.is_done = true;
123
+ actionData.is_current = 'N'; // Mark as not current
124
+
125
+ // Save the updated action
126
+ await this.actionDataRepo.update(actionData.id, actionData);
127
+
128
+ // NOW, ACTIVATE THE NEXT ACTION (moveNextActionData logic here)
129
+ // Find next sequence action for the same entity/stage
130
+ const allActionData = await this.actionDataRepo.find({
131
+ where: { mapped_entity_type, mapped_entity_id, stage_id },
132
+ order: { sequence: 'ASC' },
133
+ });
134
+
135
+ // Find the action with the next higher sequence number
136
+ const nextAction = allActionData.find(
137
+ (a) => a.sequence > actionData.sequence,
138
+ );
139
+ if (nextAction && nextAction.is_current !== 'Y') {
140
+ nextAction.is_current = 'Y';
141
+ nextAction.start_time = new Date();
142
+ nextAction.modified_by = loggedInUser.id;
143
+ nextAction.modified_date = new Date();
144
+ await this.actionDataRepo.update(nextAction.id, nextAction);
145
+ }
146
+
147
+ // Optionally return both for audit
148
+ return { finished: actionData, activated: nextAction ?? null };
149
+ }
150
+
151
+ async resubmitAction(
152
+ organization_id: number,
153
+ mapped_entity_type: string,
154
+ mapped_entity_id: number,
155
+ stage_id: number,
156
+ action_id: number,
157
+ ) {
158
+ // Get the current active action
159
+ const currentAction = await this.actionDataRepo.findOne({
160
+ where: {
161
+ organization_id,
162
+ stage_id,
163
+ mapped_entity_id,
164
+ mapped_entity_type,
165
+ action_id,
166
+ is_current: 'Y',
167
+ },
168
+ });
169
+
170
+ if (!currentAction) {
171
+ // skip
172
+ return;
173
+ }
174
+
175
+ // Find the immediate previous action in the sequence
176
+ const previousAction = await this.actionDataRepo.findOne({
177
+ where: {
178
+ organization_id,
179
+ stage_id,
180
+ mapped_entity_id,
181
+ mapped_entity_type,
182
+ sequence: LessThan(currentAction.sequence),
183
+ },
184
+ order: { sequence: 'DESC' }, // immediate previous
185
+ });
186
+
187
+ if (!previousAction) {
188
+ // no previous action means we cannot resubmit
189
+ return;
190
+ }
191
+
192
+ // Unset current action
193
+ currentAction.is_current = null as any;
194
+ currentAction.modified_date = new Date();
195
+ currentAction.modified_by = organization_id;
196
+ currentAction.start_time = null as any;
197
+ currentAction.resubmit_count = (currentAction.resubmit_count ?? 0) + 1;
198
+
199
+ await this.actionDataRepo.update(currentAction.id, currentAction);
200
+
201
+ // Mark previous action as current again
202
+ previousAction.is_current = 'Y';
203
+ previousAction.modified_date = new Date();
204
+ previousAction.modified_by = organization_id;
205
+ previousAction.end_time = null as any; // Reset end time
206
+ previousAction.is_done = false;
207
+ await this.actionDataRepo.update(previousAction.id, previousAction);
208
+
209
+ // reverse the status of tasks for the previous action
210
+ const tasksForPrevAction = await this.TaskRepository.find({
211
+ where: {
212
+ action_id: String(previousAction.action_id),
213
+ mapped_entity_type,
214
+ mapped_entity_id,
215
+ stage_id: String(previousAction.stage_id),
216
+ is_done: true,
217
+ },
218
+ });
219
+
220
+ if (tasksForPrevAction.length > 0) {
221
+ for (const task of tasksForPrevAction) {
222
+ task.modified_date = new Date();
223
+ task.is_done = false;
224
+
225
+ // Reset status (optional: set to something like 'pending' if needed)
226
+ const pendingListMasterItemId = await this.dataSource.query(
227
+ `SELECT id FROM cr_list_master_items WHERE code = 'in_progress' AND organization_id = ? AND listtype = 'TKST' LIMIT 1;`,
228
+ [organization_id],
229
+ );
230
+ task.status = pendingListMasterItemId[0]?.id ?? task.status;
231
+
232
+ await this.TaskRepository.update(task.id, task);
233
+ }
234
+ }
235
+
236
+ return {
237
+ message: 'Action resubmitted successfully',
238
+ revertedTo: previousAction,
239
+ updated: currentAction,
240
+ };
241
+ }
242
+ }