rez_core 4.0.157 → 4.0.160

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