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