rez_core 3.1.155 → 3.1.157

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/.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/ics/service/ics.service.d.ts +1 -1
  22. package/dist/module/ics/service/ics.service.js +2 -2
  23. package/dist/module/ics/service/ics.service.js.map +1 -1
  24. package/dist/module/integration/controller/wrapper.controller.d.ts +3 -3
  25. package/dist/module/integration/controller/wrapper.controller.js +4 -3
  26. package/dist/module/integration/controller/wrapper.controller.js.map +1 -1
  27. package/dist/module/integration/examples/usage.example.js +9 -9
  28. package/dist/module/integration/service/integration.service.js +1 -1
  29. package/dist/module/integration/service/wrapper.service.d.ts +3 -3
  30. package/dist/module/integration/service/wrapper.service.js +36 -59
  31. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  32. package/dist/module/listmaster/service/list-master-item.service.js +2 -2
  33. package/dist/module/listmaster/service/list-master.service.js +2 -2
  34. package/dist/module/mapper/service/field-mapper.service.js +4 -4
  35. package/dist/module/mapper/service/mapper.service.js +2 -2
  36. package/dist/module/meta/service/entity-dynamic.service.js +18 -18
  37. package/dist/module/meta/service/entity-list.service.js +3 -3
  38. package/dist/module/meta/service/entity-master.service.js +3 -3
  39. package/dist/module/meta/service/entity-relation.service.js +11 -11
  40. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  41. package/dist/module/meta/service/resolver.service.js +3 -3
  42. package/dist/module/module/repository/menu.repository.js +12 -12
  43. package/dist/module/notification/service/notification.service.js +12 -12
  44. package/dist/module/user/controller/login.controller.js +18 -18
  45. package/dist/module/user/service/role.service.js +4 -4
  46. package/dist/module/user/service/user-session.service.js +2 -2
  47. package/dist/module/workflow/repository/action.repository.js +16 -16
  48. package/dist/module/workflow/repository/comm-template.repository.js +6 -6
  49. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  50. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  51. package/dist/module/workflow/repository/stage-movement.repository.js +11 -11
  52. package/dist/module/workflow/repository/stage.repository.js +8 -8
  53. package/dist/module/workflow/service/action-template-mapping.service.js +10 -10
  54. package/dist/module/workflow/service/action.service.js +7 -7
  55. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  56. package/dist/module/workflow/service/stage-group.service.js +5 -5
  57. package/dist/module/workflow/service/stage.service.js +2 -2
  58. package/dist/module/workflow/service/task.service.js +33 -33
  59. package/dist/module/workflow/service/workflow-list-master.service.js +15 -15
  60. package/dist/module/workflow/service/workflow-meta.service.js +50 -50
  61. package/dist/module/workflow/service/workflow.service.js +2 -2
  62. package/dist/tsconfig.build.tsbuildinfo +1 -1
  63. package/dist/utils/service/reflection-helper.service.js +2 -2
  64. package/docs/modules/event-driven-integration-design.md +91 -91
  65. package/docs/modules/integration.md +250 -250
  66. package/eslint.config.mjs +34 -34
  67. package/nest-cli.json +14 -14
  68. package/package.json +118 -118
  69. package/server.log +850 -0
  70. package/src/app.controller.ts +12 -12
  71. package/src/app.module.ts +49 -49
  72. package/src/app.service.ts +8 -8
  73. package/src/config/config.module.ts +18 -18
  74. package/src/config/database.config.ts +23 -23
  75. package/src/constant/global.constant.ts +67 -67
  76. package/src/core.module.ts +81 -81
  77. package/src/decorators/roles.decorator.ts +7 -7
  78. package/src/dtos/response.dto.ts +6 -6
  79. package/src/dtos/response.ts +5 -5
  80. package/src/index.ts +1 -1
  81. package/src/module/auth/auth.module.ts +49 -49
  82. package/src/module/auth/controller/auth.controller.ts +28 -28
  83. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  84. package/src/module/auth/guards/jwt.guard.ts +22 -22
  85. package/src/module/auth/guards/role.guard.ts +68 -68
  86. package/src/module/auth/services/auth.service.ts +50 -50
  87. package/src/module/auth/services/jwt.service.ts +11 -11
  88. package/src/module/auth/strategies/google.strategy.ts +54 -54
  89. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  90. package/src/module/auth/strategies/local.strategy.ts +13 -13
  91. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  92. package/src/module/dashboard/dashboard.module.ts +21 -21
  93. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  94. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  95. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  96. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  97. package/src/module/dev/dev.module.ts +12 -12
  98. package/src/module/dev/service/dev.service.ts +7 -7
  99. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  100. package/src/module/enterprise/enterprise.module.ts +30 -30
  101. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  102. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  103. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  104. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  105. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  106. package/src/module/enterprise/repository/school.repository.ts +281 -281
  107. package/src/module/enterprise/service/brand.service.ts +5 -5
  108. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  109. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  110. package/src/module/enterprise/service/organization.service.ts +145 -145
  111. package/src/module/filter/controller/filter.controller.ts +84 -84
  112. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  113. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  114. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  115. package/src/module/filter/filter.module.ts +31 -31
  116. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  117. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  118. package/src/module/filter/service/filter.service.ts +841 -841
  119. package/src/module/filter/service/saved-filter.service.ts +170 -170
  120. package/src/module/ics/controller/ics.controller.ts +21 -21
  121. package/src/module/ics/dto/ics.dto.ts +55 -55
  122. package/src/module/ics/ics.module.ts +13 -13
  123. package/src/module/ics/service/ics.service.ts +57 -57
  124. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  125. package/src/module/integration/controller/integration.controller.ts +662 -662
  126. package/src/module/integration/controller/wrapper.controller.ts +37 -39
  127. package/src/module/integration/dto/create-config.dto.ts +526 -526
  128. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  129. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  130. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  131. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  132. package/src/module/integration/examples/usage.example.ts +338 -338
  133. package/src/module/integration/factories/base.factory.ts +7 -7
  134. package/src/module/integration/factories/email.factory.ts +49 -49
  135. package/src/module/integration/factories/integration.factory.ts +121 -121
  136. package/src/module/integration/factories/sms.factory.ts +51 -51
  137. package/src/module/integration/factories/telephone.factory.ts +41 -41
  138. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  139. package/src/module/integration/integration.module.ts +110 -110
  140. package/src/module/integration/service/calendar-event.service.ts +118 -118
  141. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  142. package/src/module/integration/service/integration-queue.service.ts +229 -229
  143. package/src/module/integration/service/integration.service.ts +2572 -2572
  144. package/src/module/integration/service/oauth.service.ts +224 -224
  145. package/src/module/integration/service/wrapper.service.ts +439 -513
  146. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  147. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  148. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  149. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  150. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  151. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  152. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  153. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  154. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  155. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  156. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  157. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  158. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  159. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  160. package/src/module/layout/controller/layout.controller.ts +47 -47
  161. package/src/module/layout/entity/header-items.entity.ts +28 -28
  162. package/src/module/layout/entity/header-section.entity.ts +19 -19
  163. package/src/module/layout/layout.module.ts +21 -21
  164. package/src/module/layout/repository/header-items.repository.ts +18 -18
  165. package/src/module/layout/repository/header-section.repository.ts +22 -22
  166. package/src/module/layout/service/header-section.service.ts +25 -25
  167. package/src/module/layout_preference/controller/layout_preference.controller.ts +47 -47
  168. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  169. package/src/module/layout_preference/layout_preference.module.ts +18 -18
  170. package/src/module/layout_preference/repository/layout_preference.repository.ts +30 -30
  171. package/src/module/layout_preference/service/layout_preference.service.ts +172 -172
  172. package/src/module/lead/controller/lead.controller.ts +30 -30
  173. package/src/module/lead/lead.module.ts +14 -14
  174. package/src/module/lead/repository/lead.repository.ts +41 -41
  175. package/src/module/lead/service/lead.service.ts +54 -54
  176. package/src/module/listmaster/controller/list-master.controller.ts +143 -143
  177. package/src/module/listmaster/entity/list-master-items.entity.ts +41 -41
  178. package/src/module/listmaster/entity/list-master.entity.ts +32 -32
  179. package/src/module/listmaster/listmaster.module.ts +44 -44
  180. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  181. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  182. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  183. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  184. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  185. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  186. package/src/module/listmaster/service/list-master.service.ts +375 -375
  187. package/src/module/mapper/controller/field-mapper.controller.ts +69 -69
  188. package/src/module/mapper/controller/mapper.controller.ts +14 -14
  189. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  190. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  191. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  192. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  193. package/src/module/mapper/mapper.module.ts +34 -34
  194. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  195. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  196. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  197. package/src/module/mapper/service/field-mapper.service.ts +223 -223
  198. package/src/module/mapper/service/mapper.service.ts +72 -72
  199. package/src/module/master/controller/master.controller.ts +74 -74
  200. package/src/module/master/service/master.service.ts +483 -483
  201. package/src/module/meta/controller/app-master.controller.ts +38 -38
  202. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  203. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  204. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  205. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  206. package/src/module/meta/controller/entity.controller.ts +385 -385
  207. package/src/module/meta/controller/media.controller.ts +82 -82
  208. package/src/module/meta/controller/meta.controller.ts +96 -96
  209. package/src/module/meta/controller/view-master.controller.ts +86 -86
  210. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  211. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  212. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  213. package/src/module/meta/entity/app-master.entity.ts +34 -34
  214. package/src/module/meta/entity/attribute-master.entity.ts +87 -87
  215. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  216. package/src/module/meta/entity/entity-master.entity.ts +78 -78
  217. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  218. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  219. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  220. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  221. package/src/module/meta/entity/media-data.entity.ts +32 -32
  222. package/src/module/meta/entity/preference.entity.ts +62 -62
  223. package/src/module/meta/entity/view-master.entity.ts +41 -41
  224. package/src/module/meta/entity.module.ts +156 -156
  225. package/src/module/meta/repository/app-master.repository.ts +20 -20
  226. package/src/module/meta/repository/attribute-master.repository.ts +110 -110
  227. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  228. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  229. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  230. package/src/module/meta/repository/media-data.repository.ts +50 -50
  231. package/src/module/meta/repository/preference.repository.ts +20 -20
  232. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  233. package/src/module/meta/repository/view-master.repository.ts +42 -42
  234. package/src/module/meta/service/app-master.service.ts +37 -37
  235. package/src/module/meta/service/attribute-master.service.ts +117 -117
  236. package/src/module/meta/service/common.service.ts +9 -9
  237. package/src/module/meta/service/entity-dynamic.service.ts +762 -762
  238. package/src/module/meta/service/entity-list.service.ts +205 -205
  239. package/src/module/meta/service/entity-master.service.ts +164 -164
  240. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  241. package/src/module/meta/service/entity-relation.service.ts +69 -69
  242. package/src/module/meta/service/entity-service-impl.service.ts +524 -524
  243. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  244. package/src/module/meta/service/entity-table.service.ts +150 -150
  245. package/src/module/meta/service/entity-validation.service.ts +185 -185
  246. package/src/module/meta/service/entity.service.ts +67 -67
  247. package/src/module/meta/service/field-group.service.ts +103 -103
  248. package/src/module/meta/service/media-data.service.ts +140 -140
  249. package/src/module/meta/service/populate-meta.service.ts +173 -173
  250. package/src/module/meta/service/preference.service.ts +16 -16
  251. package/src/module/meta/service/resolver.service.ts +274 -274
  252. package/src/module/meta/service/section-master.service.ts +104 -104
  253. package/src/module/meta/service/update-form-json.service.ts +22 -22
  254. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  255. package/src/module/meta/service/view-master.service.ts +111 -111
  256. package/src/module/module/controller/menu.controller.ts +15 -15
  257. package/src/module/module/controller/module-access.controller.ts +132 -132
  258. package/src/module/module/entity/menu.entity.ts +43 -43
  259. package/src/module/module/entity/module-access.entity.ts +25 -25
  260. package/src/module/module/entity/module-action.entity.ts +17 -17
  261. package/src/module/module/entity/module.entity.ts +52 -52
  262. package/src/module/module/module.module.ts +42 -42
  263. package/src/module/module/repository/menu.repository.ts +184 -184
  264. package/src/module/module/repository/module-access.repository.ts +331 -331
  265. package/src/module/module/service/menu.service.ts +82 -82
  266. package/src/module/module/service/module-access.service.ts +209 -209
  267. package/src/module/notification/controller/notification.controller.ts +58 -58
  268. package/src/module/notification/controller/otp.controller.ts +117 -117
  269. package/src/module/notification/entity/notification.entity.ts +23 -23
  270. package/src/module/notification/entity/otp.entity.ts +28 -28
  271. package/src/module/notification/firebase-admin.config.ts +22 -22
  272. package/src/module/notification/notification.module.ts +69 -69
  273. package/src/module/notification/repository/otp.repository.ts +27 -27
  274. package/src/module/notification/service/email.service.ts +127 -127
  275. package/src/module/notification/service/notification.service.ts +138 -138
  276. package/src/module/notification/service/otp.service.ts +121 -121
  277. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  278. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  279. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  280. package/src/module/third-party-module/third-party.module.ts +12 -12
  281. package/src/module/user/controller/login.controller.ts +197 -197
  282. package/src/module/user/controller/user.controller.ts +40 -40
  283. package/src/module/user/dto/create-user.dto.ts +62 -62
  284. package/src/module/user/dto/update-user.dto.ts +4 -4
  285. package/src/module/user/entity/role.entity.ts +33 -33
  286. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  287. package/src/module/user/entity/user-session.entity.ts +61 -61
  288. package/src/module/user/entity/user.entity.ts +68 -68
  289. package/src/module/user/repository/role.repository.ts +96 -96
  290. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  291. package/src/module/user/repository/user.repository.ts +50 -50
  292. package/src/module/user/repository/userSession.repository.ts +33 -33
  293. package/src/module/user/service/login.service.ts +280 -280
  294. package/src/module/user/service/role.service.ts +189 -189
  295. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  296. package/src/module/user/service/user-session.service.ts +168 -168
  297. package/src/module/user/service/user.service.ts +353 -353
  298. package/src/module/user/user.module.ts +65 -65
  299. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  300. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  301. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  302. package/src/module/workflow/controller/action.controller.ts +95 -95
  303. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  304. package/src/module/workflow/controller/comm-template.controller.ts +34 -34
  305. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  306. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  307. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  308. package/src/module/workflow/controller/stage.controller.ts +50 -50
  309. package/src/module/workflow/controller/task.controller.ts +77 -77
  310. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  311. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  312. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  313. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  314. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  315. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  316. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  317. package/src/module/workflow/entity/action.entity.ts +50 -50
  318. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  319. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  320. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  321. package/src/module/workflow/entity/form.entity.ts +25 -25
  322. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  323. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  324. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  325. package/src/module/workflow/entity/stage.entity.ts +20 -20
  326. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  327. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  328. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  329. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  330. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  331. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  332. package/src/module/workflow/repository/action-data.repository.ts +219 -219
  333. package/src/module/workflow/repository/action.repository.ts +277 -277
  334. package/src/module/workflow/repository/activity-log.repository.ts +121 -121
  335. package/src/module/workflow/repository/comm-template.repository.ts +142 -142
  336. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  337. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  338. package/src/module/workflow/repository/stage-movement.repository.ts +227 -227
  339. package/src/module/workflow/repository/stage.repository.ts +172 -172
  340. package/src/module/workflow/repository/task.repository.ts +113 -113
  341. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  342. package/src/module/workflow/service/action-category.service.ts +33 -33
  343. package/src/module/workflow/service/action-data.service.ts +62 -62
  344. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  345. package/src/module/workflow/service/action-template-mapping.service.ts +55 -55
  346. package/src/module/workflow/service/action.service.ts +263 -263
  347. package/src/module/workflow/service/activity-log.service.ts +107 -107
  348. package/src/module/workflow/service/comm-template.service.ts +121 -121
  349. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  350. package/src/module/workflow/service/form-master.service.ts +35 -35
  351. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  352. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  353. package/src/module/workflow/service/stage-group.service.ts +300 -300
  354. package/src/module/workflow/service/stage.service.ts +199 -199
  355. package/src/module/workflow/service/task.service.ts +504 -504
  356. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  357. package/src/module/workflow/service/workflow-meta.service.ts +581 -581
  358. package/src/module/workflow/service/workflow.service.ts +205 -205
  359. package/src/module/workflow/workflow.module.ts +172 -172
  360. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -21
  361. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  362. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -35
  363. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  364. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  365. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  366. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  367. package/src/module/workflow-automation/service/workflow-automation.service.ts +345 -345
  368. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  369. package/src/resources/dev.properties.yaml +30 -30
  370. package/src/resources/local.properties.yaml +27 -27
  371. package/src/resources/properties.module.ts +12 -12
  372. package/src/resources/properties.yaml.ts +11 -11
  373. package/src/resources/uat.properties.yaml +15 -15
  374. package/src/utils/dto/excel-data.dto.ts +14 -14
  375. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  376. package/src/utils/service/base64util.service.ts +18 -18
  377. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  378. package/src/utils/service/codeGenerator.service.ts +22 -22
  379. package/src/utils/service/dateUtil.service.ts +17 -17
  380. package/src/utils/service/encryptUtil.service.ts +97 -97
  381. package/src/utils/service/excel-helper.service.ts +72 -72
  382. package/src/utils/service/excelUtil.service.ts +15 -15
  383. package/src/utils/service/file-util.service.ts +11 -11
  384. package/src/utils/service/json-util.service.ts +23 -23
  385. package/src/utils/service/loggingUtil.service.ts +34 -34
  386. package/src/utils/service/reflection-helper.service.ts +62 -62
  387. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  388. package/src/utils/utils.module.ts +25 -25
  389. package/tsconfig.build.json +4 -4
  390. package/tsconfig.json +24 -24
  391. package/.vscode/extensions.json +0 -5
@@ -24,10 +24,10 @@ let ActionRepository = class ActionRepository {
24
24
  }
25
25
  async getReasonCode(loggedInUser) {
26
26
  const { organization_id } = loggedInUser;
27
- const result = await this.dataSource.query(`
28
- SELECT name, type
29
- FROM cr_list_master
30
- WHERE organization_id = ? AND source = 'master'
27
+ const result = await this.dataSource.query(`
28
+ SELECT name, type
29
+ FROM cr_list_master
30
+ WHERE organization_id = ? AND source = 'master'
31
31
  `, [organization_id]);
32
32
  const formatted = result.map((item) => ({
33
33
  label: item.name,
@@ -40,10 +40,10 @@ let ActionRepository = class ActionRepository {
40
40
  if (!list_type) {
41
41
  throw new common_1.BadRequestException('list_type is required');
42
42
  }
43
- const result = await this.dataSource.query(`
44
- SELECT name, id
45
- FROM cr_list_master_items
46
- WHERE listtype = ? AND organization_id = ?
43
+ const result = await this.dataSource.query(`
44
+ SELECT name, id
45
+ FROM cr_list_master_items
46
+ WHERE listtype = ? AND organization_id = ?
47
47
  `, [list_type, organization_id]);
48
48
  return result.map((row) => ({
49
49
  label: row.name,
@@ -52,19 +52,19 @@ let ActionRepository = class ActionRepository {
52
52
  }
53
53
  async getActions(loggedInUser, stage_id) {
54
54
  const { organization_id } = loggedInUser;
55
- const stageActions = await this.dataSource.query(`
56
- SELECT id, action_id
57
- FROM cr_wf_stage_action_mapping
58
- WHERE stage_id = ?
55
+ const stageActions = await this.dataSource.query(`
56
+ SELECT id, action_id
57
+ FROM cr_wf_stage_action_mapping
58
+ WHERE stage_id = ?
59
59
  `, [stage_id]);
60
60
  if (!stageActions?.length)
61
61
  return [];
62
62
  const actionIds = stageActions.map((sa) => sa.action_id);
63
63
  const mappingIds = stageActions.map((sa) => sa.id);
64
- const templateMappings = await this.dataSource.query(`
65
- SELECT stg_act_mapping_id, template_code
66
- FROM cr_wf_action_template_mapping
67
- WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
64
+ const templateMappings = await this.dataSource.query(`
65
+ SELECT stg_act_mapping_id, template_code
66
+ FROM cr_wf_action_template_mapping
67
+ WHERE stg_act_mapping_id IN (${mappingIds.map(() => '?').join(',')})
68
68
  `, mappingIds);
69
69
  const templateCodes = templateMappings.map((tm) => tm.template_code);
70
70
  const templateCodeToName = {};
@@ -30,17 +30,17 @@ let CommTemplateRepository = class CommTemplateRepository {
30
30
  const { organization_id, level_id, level_type } = loggedInUser;
31
31
  let is_template;
32
32
  if (action_id) {
33
- const [actionResult] = await this.dataSource.query(`SELECT is_template
34
- FROM cr_wf_action
35
- WHERE id = ? AND organization_id = ?
33
+ const [actionResult] = await this.dataSource.query(`SELECT is_template
34
+ FROM cr_wf_action
35
+ WHERE id = ? AND organization_id = ?
36
36
  LIMIT 1`, [action_id, organization_id]);
37
37
  if (!actionResult) {
38
38
  throw new Error('Invalid action_id');
39
39
  }
40
40
  is_template = actionResult.is_template;
41
- await this.dataSource.query(`UPDATE cr_wf_comm_template
42
- SET is_template = ?
43
- WHERE mapped_entity_type = ?
41
+ await this.dataSource.query(`UPDATE cr_wf_comm_template
42
+ SET is_template = ?
43
+ WHERE mapped_entity_type = ?
44
44
  AND organization_id = ? AND level_id = ? AND level_type=?`, [is_template, entity_type, organization_id, level_id, level_type]);
45
45
  }
46
46
  const whereCondition = {
@@ -17,8 +17,8 @@ let FormMasterRepository = class FormMasterRepository {
17
17
  this.dataSource = dataSource;
18
18
  }
19
19
  async getForms(organization_id, source_entity_type) {
20
- const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
21
- FROM cr_entity_view fm
20
+ const forms = await this.dataSource.query(`SELECT fm.id as fm_id, fm.name as fm_form_name
21
+ FROM cr_entity_view fm
22
22
  WHERE fm.organization_id = ? AND fm.mapped_entity_type = ?`, [organization_id, source_entity_type]);
23
23
  const formatted = forms.map((form) => ({
24
24
  label: form.fm_form_name,
@@ -67,33 +67,33 @@ let StageGroupRepository = class StageGroupRepository {
67
67
  if (!stageGroups.length)
68
68
  return [];
69
69
  const stageGroupIds = stageGroups.map((sg) => sg.id);
70
- const stagesRaw = await this.dataSource.query(`
71
- SELECT
72
- cr_wf_stage.*
73
- FROM cr_wf_stage
74
- WHERE cr_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
75
- AND cr_wf_stage.organization_id = ?
76
- ORDER BY cr_wf_stage.sequence ASC
70
+ const stagesRaw = await this.dataSource.query(`
71
+ SELECT
72
+ cr_wf_stage.*
73
+ FROM cr_wf_stage
74
+ WHERE cr_wf_stage.stage_group_id IN (${stageGroupIds.map(() => '?').join(',')})
75
+ AND cr_wf_stage.organization_id = ?
76
+ ORDER BY cr_wf_stage.sequence ASC
77
77
  `, [...stageGroupIds, loggedInUser.organization_id]);
78
78
  const stageIds = stagesRaw.map((s) => s.id);
79
- const taskCounts = await this.dataSource.query(`
80
- SELECT stage_id, COUNT(*) AS task_count
81
- FROM cr_wf_task_data
82
- WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
83
- GROUP BY stage_id
79
+ const taskCounts = await this.dataSource.query(`
80
+ SELECT stage_id, COUNT(*) AS task_count
81
+ FROM cr_wf_task_data
82
+ WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND is_system=0 AND mapped_entity_id = ?
83
+ GROUP BY stage_id
84
84
  `, [...stageIds, lead_id]);
85
- const meetingCounts = await this.dataSource.query(`
86
- SELECT stage_id, COUNT(*) AS meeting_count
87
- FROM crm_lead_meeting
88
- WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
89
- GROUP BY stage_id
85
+ const meetingCounts = await this.dataSource.query(`
86
+ SELECT stage_id, COUNT(*) AS meeting_count
87
+ FROM crm_lead_meeting
88
+ WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
89
+ GROUP BY stage_id
90
90
  `, [...stageIds, lead_id]);
91
- const sendCommCounts = await this.dataSource.query(`
92
- SELECT stage_id, COUNT(*) AS send_comm_count
93
- FROM crm_lead_communication
94
- WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
95
- AND type IN ('SEND', 'LOG')
96
- GROUP BY stage_id
91
+ const sendCommCounts = await this.dataSource.query(`
92
+ SELECT stage_id, COUNT(*) AS send_comm_count
93
+ FROM crm_lead_communication
94
+ WHERE stage_id IN (${stageIds.map(() => '?').join(',')}) AND mapped_entity_id = ?
95
+ AND type IN ('SEND', 'LOG')
96
+ GROUP BY stage_id
97
97
  `, [...stageIds, lead_id]);
98
98
  const taskCountMap = new Map(taskCounts.map((row) => [Number(row.stage_id), Number(row.task_count)]));
99
99
  const meetingCountMap = new Map(meetingCounts.map((row) => [
@@ -107,17 +107,17 @@ let StageMovementRepository = class StageMovementRepository {
107
107
  return nextStageGroupFirstStage || null;
108
108
  }
109
109
  async getAllActionByStageId(stageId) {
110
- const result = await this.dataSource.query(`
111
- SELECT
112
- a.*,
113
- m.stage_id,
114
- ac.code AS action_category_code,
115
- arm.form_id
116
- FROM cr_wf_action a
117
- LEFT JOIN cr_wf_stage_action_mapping m ON a.id = m.action_id
118
- LEFT JOIN cr_wf_action_category ac ON a.action_category = ac.id
119
- LEFT JOIN cr_wf_action_resources_mapping arm ON m.id = arm.stg_act_mapping_id
120
- WHERE m.stage_id = ?
110
+ const result = await this.dataSource.query(`
111
+ SELECT
112
+ a.*,
113
+ m.stage_id,
114
+ ac.code AS action_category_code,
115
+ arm.form_id
116
+ FROM cr_wf_action a
117
+ LEFT JOIN cr_wf_stage_action_mapping m ON a.id = m.action_id
118
+ LEFT JOIN cr_wf_action_category ac ON a.action_category = ac.id
119
+ LEFT JOIN cr_wf_action_resources_mapping arm ON m.id = arm.stg_act_mapping_id
120
+ WHERE m.stage_id = ?
121
121
  `, [stageId]);
122
122
  return result;
123
123
  }
@@ -62,14 +62,14 @@ let StageRepository = class StageRepository {
62
62
  if (!stageGroup) {
63
63
  return [];
64
64
  }
65
- const rows = await this.dataSource.query(`
66
- SELECT
67
- g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
68
- s.*
69
- FROM cr_wf_stage_group g
70
- INNER JOIN cr_wf_stage s ON s.stage_group_id = g.id
71
- WHERE g.workflow_id = ? AND g.organization_id = ? AND g.id = ?
72
- ORDER BY g.id, s.id
65
+ const rows = await this.dataSource.query(`
66
+ SELECT
67
+ g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
68
+ s.*
69
+ FROM cr_wf_stage_group g
70
+ INNER JOIN cr_wf_stage s ON s.stage_group_id = g.id
71
+ WHERE g.workflow_id = ? AND g.organization_id = ? AND g.id = ?
72
+ ORDER BY g.id, s.id
73
73
  `, [stageGroup.workflow_id, organization_id, stage_group_id]);
74
74
  if (!rows || rows.length === 0) {
75
75
  return [];
@@ -19,16 +19,16 @@ let ActionTemplateMappingService = class ActionTemplateMappingService extends en
19
19
  this.dataSource = dataSource;
20
20
  }
21
21
  async getTemplateByMode(stage_id, action_id, mode, loggedInUser) {
22
- const stageAction = await this.dataSource.query(`
23
- SELECT id FROM cr_wf_stage_action_mapping
24
- WHERE stage_id = ? AND action_id = ?
22
+ const stageAction = await this.dataSource.query(`
23
+ SELECT id FROM cr_wf_stage_action_mapping
24
+ WHERE stage_id = ? AND action_id = ?
25
25
  `, [stage_id, action_id]);
26
26
  if (!stageAction?.length)
27
27
  return [];
28
28
  const stgActMappingId = stageAction[0].id;
29
- const templates = await this.dataSource.query(`
30
- SELECT template_code FROM cr_wf_action_resources_mapping
31
- WHERE stg_act_mapping_id = ?
29
+ const templates = await this.dataSource.query(`
30
+ SELECT template_code FROM cr_wf_action_resources_mapping
31
+ WHERE stg_act_mapping_id = ?
32
32
  `, [stgActMappingId]);
33
33
  const listMasterItemData = await this.dataSource.query(`SELECT code FROM cr_list_master_items WHERE id = ?`, [mode]);
34
34
  if (!listMasterItemData?.length)
@@ -36,10 +36,10 @@ let ActionTemplateMappingService = class ActionTemplateMappingService extends en
36
36
  const templateCodes = templates.map((t) => t.template_code);
37
37
  if (!templateCodes.length)
38
38
  return [];
39
- const commTemplates = await this.dataSource.query(`
40
- SELECT id, name
41
- FROM cr_wf_comm_template
42
- WHERE code IN (?) AND mode = ? AND organization_id = ?
39
+ const commTemplates = await this.dataSource.query(`
40
+ SELECT id, name
41
+ FROM cr_wf_comm_template
42
+ WHERE code IN (?) AND mode = ? AND organization_id = ?
43
43
  `, [templateCodes, listMasterItemData[0].code, loggedInUser.organization_id]);
44
44
  return commTemplates;
45
45
  }
@@ -25,12 +25,12 @@ let ActionService = class ActionService extends entity_service_impl_service_1.En
25
25
  if (!actionData) {
26
26
  return null;
27
27
  }
28
- const result = await this.dataSource.query(`SELECT template_code, form_id
29
- FROM cr_wf_action_resources_mapping
30
- WHERE stg_act_mapping_id IN (
31
- SELECT id
32
- FROM cr_wf_stage_action_mapping
33
- WHERE action_id = ? AND entity_type = 'WFSA'
28
+ const result = await this.dataSource.query(`SELECT template_code, form_id
29
+ FROM cr_wf_action_resources_mapping
30
+ WHERE stg_act_mapping_id IN (
31
+ SELECT id
32
+ FROM cr_wf_stage_action_mapping
33
+ WHERE action_id = ? AND entity_type = 'WFSA'
34
34
  )`, [actionData.id]);
35
35
  const templates = result
36
36
  .filter((t) => t.template_code !== null)
@@ -134,7 +134,7 @@ let ActionService = class ActionService extends entity_service_impl_service_1.En
134
134
  return action;
135
135
  }
136
136
  async deleteEntity(entityType, id, loggedInUser) {
137
- await this.dataSource.query(`DELETE FROM cr_wf_action_template_mapping WHERE stg_act_mapping_id IN (SELECT
137
+ await this.dataSource.query(`DELETE FROM cr_wf_action_template_mapping WHERE stg_act_mapping_id IN (SELECT
138
138
  id FROM cr_wf_stage_action_mapping WHERE action_id = ? AND entity_type = 'WFSA')`, [id]);
139
139
  await this.dataSource.query(`DELETE FROM cr_wf_stage_action_mapping WHERE action_id = ? AND entity_type ='WFSA'`, [id]);
140
140
  const deleteAction = await super.deleteEntity(entityType, id, loggedInUser);
@@ -24,17 +24,17 @@ let EntityModificationService = class EntityModificationService extends entity_s
24
24
  if (!mapped_entity_type || !mapped_entity_id || !attribute_key) {
25
25
  throw new common_1.BadRequestException('Missing required modification data: mapped_entity_type, mapped_entity_id, or attribute_key');
26
26
  }
27
- const [entityMeta] = await this.dataSource.query(`
28
- SELECT db_table_name
29
- FROM cr_entity_master
30
- WHERE mapped_entity_type = ? AND organization_id = ?
27
+ const [entityMeta] = await this.dataSource.query(`
28
+ SELECT db_table_name
29
+ FROM cr_entity_master
30
+ WHERE mapped_entity_type = ? AND organization_id = ?
31
31
  `, [mapped_entity_type, organization_id]);
32
32
  if (!entityMeta || !entityMeta.db_table_name) {
33
33
  throw new common_1.NotFoundException('Entity metadata not found in cr_entity_master');
34
34
  }
35
35
  const tableName = entityMeta.db_table_name;
36
- const [entityRow] = await this.dataSource.query(`
37
- SELECT * FROM ${tableName} WHERE id = ?
36
+ const [entityRow] = await this.dataSource.query(`
37
+ SELECT * FROM ${tableName} WHERE id = ?
38
38
  `, [mapped_entity_id]);
39
39
  if (!entityRow) {
40
40
  throw new common_1.NotFoundException(`No record found in ${tableName} with ID ${mapped_entity_id}`);
@@ -35,8 +35,8 @@ let StageGroupService = class StageGroupService extends entity_service_impl_serv
35
35
  }
36
36
  async getAllStageGroup(workflow_id, organization_id) {
37
37
  const allStageGroup = await this.stageGroupRepository.getAllStageGroup(workflow_id, organization_id);
38
- const statusListMaster = await this.dataSource.query(`SELECT id, name
39
- FROM cr_list_master_items
38
+ const statusListMaster = await this.dataSource.query(`SELECT id, name
39
+ FROM cr_list_master_items
40
40
  WHERE listtype = 'STS' AND organization_id = ?`, [organization_id]);
41
41
  const statusMap = new Map(statusListMaster.map((s) => [String(s.id), s.name]));
42
42
  for (const stage of allStageGroup) {
@@ -142,9 +142,9 @@ let StageGroupService = class StageGroupService extends entity_service_impl_serv
142
142
  return stageGroupAndStageHierarchy;
143
143
  }
144
144
  async getUserNameAndProfilePic(userId, loggedInUser) {
145
- const user = await this.dataSource.query(`SELECT eth_user_profile.name AS created_by_name,
146
- eth_user_profile.profile_image AS profile_image
147
- FROM eth_user_profile
145
+ const user = await this.dataSource.query(`SELECT eth_user_profile.name AS created_by_name,
146
+ eth_user_profile.profile_image AS profile_image
147
+ FROM eth_user_profile
148
148
  WHERE eth_user_profile.id = ?;`, [userId]);
149
149
  if (user.length === 0)
150
150
  return null;
@@ -35,8 +35,8 @@ let StageService = StageService_1 = class StageService extends entity_service_im
35
35
  async getAllStage(payload, organization_id, show_previous) {
36
36
  if (!show_previous) {
37
37
  const allStages = await this.stageRepository.getAllStage(payload.stage_group_id, organization_id);
38
- const statusListMaster = await this.dataSource.query(`SELECT id, name
39
- FROM cr_list_master_items
38
+ const statusListMaster = await this.dataSource.query(`SELECT id, name
39
+ FROM cr_list_master_items
40
40
  WHERE listtype = 'STS' AND organization_id = ?`, [organization_id]);
41
41
  const statusMap = new Map(statusListMaster.map((s) => [String(s.id), s.name]));
42
42
  for (const stage of allStages) {
@@ -35,10 +35,10 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
35
35
  async execute(payload) {
36
36
  const { entity, user, config } = payload;
37
37
  let toValue = null;
38
- const stageRow = await this.dataSource.query(`SELECT stage_id
39
- FROM cr_wf_stage_movement_data
40
- WHERE mapped_entity_id = ?
41
- AND is_current = 'Y'
38
+ const stageRow = await this.dataSource.query(`SELECT stage_id
39
+ FROM cr_wf_stage_movement_data
40
+ WHERE mapped_entity_id = ?
41
+ AND is_current = 'Y'
42
42
  LIMIT 1`, [entity.id]);
43
43
  const stageId = stageRow.length > 0 ? stageRow[0].stage_id : null;
44
44
  if (!stageId) {
@@ -93,13 +93,13 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
93
93
  return createdEntity;
94
94
  }
95
95
  async updateEntity(entityData, loggedInUser, appcode) {
96
- const taskStatusQuery = `
97
- SELECT name
98
- FROM cr_list_master_items
99
- WHERE id = ?
100
- AND organization_id = ?
101
- AND listtype = 'TKST'
102
- LIMIT 1;
96
+ const taskStatusQuery = `
97
+ SELECT name
98
+ FROM cr_list_master_items
99
+ WHERE id = ?
100
+ AND organization_id = ?
101
+ AND listtype = 'TKST'
102
+ LIMIT 1;
103
103
  `;
104
104
  const statusRows = await this.dataSource.query(taskStatusQuery, [
105
105
  entityData.status,
@@ -187,33 +187,33 @@ let TaskService = class TaskService extends entity_service_impl_service_1.Entity
187
187
  whereClauses.push(`t.is_done = ?`);
188
188
  params.push(0);
189
189
  }
190
- const sql = `
191
- SELECT
192
- t.*,
193
- sg.name AS stage_group_name,
194
- s.name AS stage_name,
195
- a.name AS action_name,
196
- u.name AS created_by_name,
197
- u2.name AS task_owner_name,
198
- u2.profile_image AS task_owner_profile
199
- FROM cr_wf_task_data t
200
- LEFT JOIN cr_wf_stage s ON t.stage_id = s.id
201
- LEFT JOIN cr_wf_stage_group sg ON s.stage_group_id = sg.id
202
- LEFT JOIN cr_wf_action a ON t.action_id = a.id
203
- LEFT JOIN sso_user u ON t.created_by = u.id
204
- LEFT JOIN eth_user_profile u2 ON t.task_owner = u2.parent_id
205
- WHERE ${whereClauses.join(' AND ')}
206
- ORDER BY t.created_date DESC
190
+ const sql = `
191
+ SELECT
192
+ t.*,
193
+ sg.name AS stage_group_name,
194
+ s.name AS stage_name,
195
+ a.name AS action_name,
196
+ u.name AS created_by_name,
197
+ u2.name AS task_owner_name,
198
+ u2.profile_image AS task_owner_profile
199
+ FROM cr_wf_task_data t
200
+ LEFT JOIN cr_wf_stage s ON t.stage_id = s.id
201
+ LEFT JOIN cr_wf_stage_group sg ON s.stage_group_id = sg.id
202
+ LEFT JOIN cr_wf_action a ON t.action_id = a.id
203
+ LEFT JOIN sso_user u ON t.created_by = u.id
204
+ LEFT JOIN eth_user_profile u2 ON t.task_owner = u2.parent_id
205
+ WHERE ${whereClauses.join(' AND ')}
206
+ ORDER BY t.created_date DESC
207
207
  `;
208
208
  const taskData = await this.dataSource.query(sql, params);
209
209
  if (taskData.length === 0) {
210
210
  return [];
211
211
  }
212
- const taskStatusQuery = `
213
- SELECT id, name
214
- FROM cr_list_master_items
215
- WHERE organization_id = ?
216
- AND listtype = 'TKST'
212
+ const taskStatusQuery = `
213
+ SELECT id, name
214
+ FROM cr_list_master_items
215
+ WHERE organization_id = ?
216
+ AND listtype = 'TKST'
217
217
  `;
218
218
  const taskAllStatus = await this.dataSource.query(taskStatusQuery, [
219
219
  loggedInUser.organization_id,
@@ -19,16 +19,16 @@ let WorkflowListMasterService = class WorkflowListMasterService extends entity_s
19
19
  this.dataSource = dataSource;
20
20
  }
21
21
  async getActionCategoryListByStageId(stageId) {
22
- const results = await this.dataSource.query(`
23
- SELECT
24
- ac.name AS name,
25
- ac.logo AS logo,
26
- ac.modalName AS modalName,
27
- a.action_requirement AS actionRequirement
28
- FROM cr_wf_stage_action_mapping sam
29
- JOIN cr_wf_action a ON sam.action_id = a.id
30
- JOIN cr_wf_action_category ac ON a.action_category = ac.id
31
- WHERE sam.stage_id = ?
22
+ const results = await this.dataSource.query(`
23
+ SELECT
24
+ ac.name AS name,
25
+ ac.logo AS logo,
26
+ ac.modalName AS modalName,
27
+ a.action_requirement AS actionRequirement
28
+ FROM cr_wf_stage_action_mapping sam
29
+ JOIN cr_wf_action a ON sam.action_id = a.id
30
+ JOIN cr_wf_action_category ac ON a.action_category = ac.id
31
+ WHERE sam.stage_id = ?
32
32
  `, [stageId]);
33
33
  return results.map((item) => ({
34
34
  name: item.name,
@@ -44,11 +44,11 @@ let WorkflowListMasterService = class WorkflowListMasterService extends entity_s
44
44
  }
45
45
  async getModes(loggedInUser) {
46
46
  const { organization_id } = loggedInUser;
47
- const modes = await this.dataSource.query(`
48
- SELECT id, name
49
- FROM cr_list_master_items
50
- WHERE listtype = 'MOD'
51
- AND organization_id = ?
47
+ const modes = await this.dataSource.query(`
48
+ SELECT id, name
49
+ FROM cr_list_master_items
50
+ WHERE listtype = 'MOD'
51
+ AND organization_id = ?
52
52
  `, [organization_id]);
53
53
  return modes;
54
54
  }
@@ -211,9 +211,9 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
211
211
  action_id: entityData.action_id,
212
212
  }, loggedInUser);
213
213
  const leadData = await this.getEntityData('LEAD', lead_id, loggedInUser);
214
- const unassignedListMasterItemData = await this.dataSource.query(`SELECT name, id
215
- FROM cr_list_master_items
216
- WHERE listtype = "LEST" AND organization_id = ?
214
+ const unassignedListMasterItemData = await this.dataSource.query(`SELECT name, id
215
+ FROM cr_list_master_items
216
+ WHERE listtype = "LEST" AND organization_id = ?
217
217
  AND value IN (?, ?)`, [loggedInUser.organization_id, 'unassigned', 'active']);
218
218
  const unassignedId = unassignedListMasterItemData.find((item) => item.name.toLowerCase() === 'unassigned')?.id;
219
219
  const activeId = unassignedListMasterItemData.find((item) => item.name.toLowerCase() === 'active')?.id;
@@ -225,24 +225,24 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
225
225
  status: leadData?.lead_status,
226
226
  lead_status: leadData?.lead_status,
227
227
  }, loggedInUser);
228
- await this.dataSource.query(`UPDATE cr_wf_action_data SET user_id =?
229
- WHERE mapped_entity_id=?
230
- AND mapped_entity_type = ?
231
- AND stage_id = ?
232
- AND (is_current = 'Y' OR is_current IS NULL)
228
+ await this.dataSource.query(`UPDATE cr_wf_action_data SET user_id =?
229
+ WHERE mapped_entity_id=?
230
+ AND mapped_entity_type = ?
231
+ AND stage_id = ?
232
+ AND (is_current = 'Y' OR is_current IS NULL)
233
233
  `, [lead_owner, lead_id, entity_type, stage_id]);
234
- await this.dataSource.query(`UPDATE crm_lead_meeting SET user_id=?
235
- WHERE stage_id = ?
236
- AND mapped_entity_id = ?
237
- AND mapped_entity_type = "LEAD"
238
- AND (status='scheduled' OR status='rescheduled')
234
+ await this.dataSource.query(`UPDATE crm_lead_meeting SET user_id=?
235
+ WHERE stage_id = ?
236
+ AND mapped_entity_id = ?
237
+ AND mapped_entity_type = "LEAD"
238
+ AND (status='scheduled' OR status='rescheduled')
239
239
  `, [lead_owner, stage_id, lead_id]);
240
- const taskRows = await this.dataSource.query(`SELECT id,status FROM cr_wf_task_data
241
- WHERE mapped_entity_id = ?
242
- AND mapped_entity_type = ?
240
+ const taskRows = await this.dataSource.query(`SELECT id,status FROM cr_wf_task_data
241
+ WHERE mapped_entity_id = ?
242
+ AND mapped_entity_type = ?
243
243
  AND stage_id = ?`, [lead_id, entity_type, stage_id]);
244
244
  for (const task of taskRows) {
245
- const statusRows = await this.dataSource.query(`SELECT value FROM cr_list_master_items
245
+ const statusRows = await this.dataSource.query(`SELECT value FROM cr_list_master_items
246
246
  WHERE id = ? AND organization_id = ?`, [task.status, loggedInUser.organization_id]);
247
247
  const statusName = statusRows[0]?.value?.toLowerCase() || '';
248
248
  if (['todo', 'in_progress'].includes(statusName) ||
@@ -272,49 +272,49 @@ let WorkflowMetaService = class WorkflowMetaService extends entity_service_impl_
272
272
  }
273
273
  async assignLead(loggedInUser, mapped_entity_id, mapped_entity_type, stage_id, actions) {
274
274
  const { organization_id, level_id, level_type } = loggedInUser;
275
- const owners = await this.dataSource.query(`
276
- SELECT DISTINCT u.id
277
- FROM sso_user u
278
- JOIN sso_user_role_mapping urm ON u.id = urm.user_id
279
- JOIN sso_role r ON urm.role_id = r.id
280
- JOIN sso_module_access ma ON ma.role_code = r.code
281
- WHERE urm.organization_id = ?
282
- AND urm.level_id = ?
283
- AND urm.level_type = ?
284
- AND urm.appcode = 'CRM'
285
- AND ma.appcode = 'CRM'
286
- AND ma.module_code = 'lead_crm_sch'
287
- AND ma.access_flag = 1
288
- AND ma.action_type = 'LEAD_OWNER'
289
- ORDER BY u.id ASC
275
+ const owners = await this.dataSource.query(`
276
+ SELECT DISTINCT u.id
277
+ FROM sso_user u
278
+ JOIN sso_user_role_mapping urm ON u.id = urm.user_id
279
+ JOIN sso_role r ON urm.role_id = r.id
280
+ JOIN sso_module_access ma ON ma.role_code = r.code
281
+ WHERE urm.organization_id = ?
282
+ AND urm.level_id = ?
283
+ AND urm.level_type = ?
284
+ AND urm.appcode = 'CRM'
285
+ AND ma.appcode = 'CRM'
286
+ AND ma.module_code = 'lead_crm_sch'
287
+ AND ma.access_flag = 1
288
+ AND ma.action_type = 'LEAD_OWNER'
289
+ ORDER BY u.id ASC
290
290
  `, [organization_id, Number(level_id), level_type]);
291
291
  if (!owners?.length)
292
292
  throw new Error('No eligible users found');
293
293
  const userIds = owners.map((o) => Number(o.id));
294
294
  const placeholders = userIds.map(() => '?').join(',');
295
- const lastRow = await this.dataSource.query(`
296
- SELECT lead_owner
297
- FROM crm_lead
298
- WHERE organization_id = ?
299
- AND level_id = ?
300
- AND level_type = ?
301
- AND lead_owner IN (${placeholders})
302
- ORDER BY created_date DESC
303
- LIMIT 1
295
+ const lastRow = await this.dataSource.query(`
296
+ SELECT lead_owner
297
+ FROM crm_lead
298
+ WHERE organization_id = ?
299
+ AND level_id = ?
300
+ AND level_type = ?
301
+ AND lead_owner IN (${placeholders})
302
+ ORDER BY created_date DESC
303
+ LIMIT 1
304
304
  `, [organization_id, Number(level_id), level_type, ...userIds]);
305
305
  const lastAssigned = lastRow.length ? Number(lastRow[0].lead_owner) : null;
306
306
  const lastIdx = lastAssigned != null ? userIds.indexOf(lastAssigned) : -1;
307
307
  const nextIdx = (lastIdx + 1) % userIds.length;
308
308
  const nextUser = userIds[nextIdx];
309
- await this.dataSource.query(`
310
- UPDATE crm_lead
311
- SET lead_owner = ?
312
- WHERE organization_id = ?
313
- AND level_id = ?
314
- AND level_type = ?
315
- AND lead_owner IS NULL
316
- ORDER BY created_date ASC
317
- LIMIT 1
309
+ await this.dataSource.query(`
310
+ UPDATE crm_lead
311
+ SET lead_owner = ?
312
+ WHERE organization_id = ?
313
+ AND level_id = ?
314
+ AND level_type = ?
315
+ AND lead_owner IS NULL
316
+ ORDER BY created_date ASC
317
+ LIMIT 1
318
318
  `, [nextUser, organization_id, Number(level_id), level_type]);
319
319
  console.log(`Assigning lead to user ID: ${nextUser}`);
320
320
  const firstAction = actions[0];
@@ -72,8 +72,8 @@ let WorkflowService = class WorkflowService extends entity_service_impl_service_
72
72
  currentId: workflowId,
73
73
  })
74
74
  .execute();
75
- await this.dataSource.query(`UPDATE cr_wf_master_level_mapping
76
- SET workflow_id = ?
75
+ await this.dataSource.query(`UPDATE cr_wf_master_level_mapping
76
+ SET workflow_id = ?
77
77
  WHERE mapped_level_id = ? AND mapped_level_type = ?`, [workflowId, level_id, level_type]);
78
78
  }
79
79
  return super.updateEntity(entityData, loggedInUser);