rez_core 4.0.196 → 4.0.197

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 (520) hide show
  1. package/.prettierrc +3 -3
  2. package/.vscode/extensions.json +5 -0
  3. package/README.md +99 -99
  4. package/dist/config/config.module.js +2 -2
  5. package/dist/config/config.module.js.map +1 -1
  6. package/dist/config/database.config.d.ts +1 -1
  7. package/dist/config/database.config.js +11 -15
  8. package/dist/config/database.config.js.map +1 -1
  9. package/dist/module/auth/guards/role.guard.js +3 -3
  10. package/dist/module/auth/services/auth.service.js +3 -3
  11. package/dist/module/auth/services/auth.service.js.map +1 -1
  12. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  13. package/dist/module/enterprise/repository/school.repository.js +3 -3
  14. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  15. package/dist/module/entity_json/service/entity_json.service.js +2 -2
  16. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  17. package/dist/module/filter/service/filter-evaluator.service.js +3 -3
  18. package/dist/module/filter/service/filter-evaluator.service.js.map +1 -1
  19. package/dist/module/filter/service/filter.service.d.ts +1 -4
  20. package/dist/module/filter/service/filter.service.js +39 -69
  21. package/dist/module/filter/service/filter.service.js.map +1 -1
  22. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  23. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  24. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  25. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  26. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  27. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  28. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  29. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  30. package/dist/module/integration/examples/usage.example.js +9 -9
  31. package/dist/module/integration/service/integration.service.js +1 -1
  32. package/dist/module/integration/service/wrapper.service.js +28 -29
  33. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  34. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  35. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  36. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  37. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  38. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  39. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  40. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  41. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  42. package/dist/module/mapper/service/field-mapper.service.js +5 -5
  43. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  44. package/dist/module/mapper/service/mapper.service.js +4 -4
  45. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  46. package/dist/module/meta/entity/app-master.entity.d.ts +2 -2
  47. package/dist/module/meta/entity/app-master.entity.js +4 -4
  48. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  49. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  50. package/dist/module/meta/entity/view-master.entity.js +1 -1
  51. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  52. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  53. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  54. package/dist/module/meta/repository/entity-attribute-update.repository.js +3 -3
  55. package/dist/module/meta/repository/entity-master.repository.js +2 -2
  56. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  57. package/dist/module/meta/service/attribute-master.service.js +1 -1
  58. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  59. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  60. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  61. package/dist/module/meta/service/entity-list.service.js +3 -3
  62. package/dist/module/meta/service/entity-master.service.js +4 -4
  63. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  64. package/dist/module/meta/service/entity-relation.service.js +13 -13
  65. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  66. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  67. package/dist/module/meta/service/media-data.service.js +9 -9
  68. package/dist/module/meta/service/media-data.service.js.map +1 -1
  69. package/dist/module/meta/service/resolver.service.js +17 -17
  70. package/dist/module/meta/service/resolver.service.js.map +1 -1
  71. package/dist/module/module/repository/menu.repository.js +12 -12
  72. package/dist/module/module/service/module-access.service.js +8 -2
  73. package/dist/module/module/service/module-access.service.js.map +1 -1
  74. package/dist/module/notification/entity/otp.entity.js +1 -1
  75. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  76. package/dist/module/notification/service/notification.service.js +22 -26
  77. package/dist/module/notification/service/notification.service.js.map +1 -1
  78. package/dist/module/user/controller/login.controller.js +18 -18
  79. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  80. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  81. package/dist/module/user/service/login.service.js +1 -1
  82. package/dist/module/user/service/login.service.js.map +1 -1
  83. package/dist/module/user/service/role.service.js +4 -4
  84. package/dist/module/user/service/user-session.service.js +4 -4
  85. package/dist/module/user/service/user-session.service.js.map +1 -1
  86. package/dist/module/user/service/user.service.js +1 -1
  87. package/dist/module/user/service/user.service.js.map +1 -1
  88. package/dist/module/workflow/entity/action-category.entity.d.ts +1 -1
  89. package/dist/module/workflow/entity/action-category.entity.js +1 -1
  90. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  91. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  92. package/dist/module/workflow/entity/action.entity.js +1 -1
  93. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  94. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  95. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  96. package/dist/module/workflow/entity/template-attach-mapper.entity.js +1 -1
  97. package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -1
  98. package/dist/module/workflow/repository/action-data.repository.js +4 -4
  99. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  100. package/dist/module/workflow/repository/action.repository.js +21 -21
  101. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  102. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  103. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  104. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  105. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  106. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  107. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  108. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  109. package/dist/module/workflow/repository/stage.repository.js +8 -8
  110. package/dist/module/workflow/repository/task.repository.js +4 -4
  111. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  112. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  113. package/dist/module/workflow/service/action.service.js +13 -13
  114. package/dist/module/workflow/service/action.service.js.map +1 -1
  115. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  116. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  117. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  118. package/dist/module/workflow/service/stage-group.service.js +6 -6
  119. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  120. package/dist/module/workflow/service/stage.service.js +4 -4
  121. package/dist/module/workflow/service/stage.service.js.map +1 -1
  122. package/dist/module/workflow/service/task.service.js +33 -33
  123. package/dist/module/workflow/service/task.service.js.map +1 -1
  124. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  125. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  126. package/dist/module/workflow/service/workflow-meta.service.js +31 -31
  127. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  128. package/dist/module/workflow/service/workflow.service.js +5 -5
  129. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  130. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.d.ts +1 -1
  131. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js +1 -1
  132. package/dist/module/workflow-automation/service/schedule-handler.service.js +14 -14
  133. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  134. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  135. package/dist/module/workflow-automation/service/workflow-automation.service.js +4 -4
  136. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js +4 -4
  137. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js.map +1 -1
  138. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js +2 -2
  139. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js.map +1 -1
  140. package/dist/module/workflow-schedule/processors/schedule.processor.js +4 -4
  141. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +9 -9
  142. package/dist/tsconfig.build.tsbuildinfo +1 -1
  143. package/dist/utils/service/reflection-helper.service.js +3 -3
  144. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  145. package/docs/modules/event-driven-integration-design.md +91 -91
  146. package/docs/modules/integration.md +250 -250
  147. package/eslint.config.mjs +34 -34
  148. package/nest-cli.json +14 -14
  149. package/package.json +124 -124
  150. package/src/app.controller.ts +12 -12
  151. package/src/app.module.ts +66 -66
  152. package/src/app.service.ts +8 -8
  153. package/src/config/bull.config.ts +69 -69
  154. package/src/config/config.module.ts +18 -17
  155. package/src/config/database.config.ts +23 -48
  156. package/src/constant/global.constant.ts +67 -67
  157. package/src/core.module.ts +88 -88
  158. package/src/decorators/roles.decorator.ts +7 -7
  159. package/src/dtos/response.dto.ts +6 -6
  160. package/src/dtos/response.ts +5 -5
  161. package/src/index.ts +1 -1
  162. package/src/module/auth/auth.module.ts +49 -49
  163. package/src/module/auth/controller/auth.controller.ts +28 -28
  164. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  165. package/src/module/auth/guards/jwt.guard.ts +22 -22
  166. package/src/module/auth/guards/role.guard.ts +68 -68
  167. package/src/module/auth/services/auth.service.ts +50 -50
  168. package/src/module/auth/services/jwt.service.ts +11 -11
  169. package/src/module/auth/strategies/google.strategy.ts +54 -54
  170. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  171. package/src/module/auth/strategies/local.strategy.ts +13 -13
  172. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  173. package/src/module/dashboard/dashboard.module.ts +21 -21
  174. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  175. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  176. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  177. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  178. package/src/module/dev/dev.module.ts +12 -12
  179. package/src/module/dev/service/dev.service.ts +7 -7
  180. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  181. package/src/module/enterprise/enterprise.module.ts +30 -30
  182. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  183. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  184. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  185. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  186. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  187. package/src/module/enterprise/repository/school.repository.ts +278 -278
  188. package/src/module/enterprise/service/brand.service.ts +5 -5
  189. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  190. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  191. package/src/module/enterprise/service/organization.service.ts +145 -145
  192. package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
  193. package/src/module/entity_json/entity_json.module.ts +15 -15
  194. package/src/module/entity_json/service/entity_json.service.ts +265 -265
  195. package/src/module/filter/controller/filter.controller.ts +84 -84
  196. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  197. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  198. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  199. package/src/module/filter/filter.module.ts +31 -31
  200. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  201. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  202. package/src/module/filter/service/filter.service.ts +1005 -1051
  203. package/src/module/filter/service/saved-filter.service.ts +170 -170
  204. package/src/module/ics/controller/ics.controller.ts +21 -21
  205. package/src/module/ics/dto/ics.dto.ts +55 -55
  206. package/src/module/ics/ics.module.ts +13 -13
  207. package/src/module/ics/service/ics.service.ts +57 -57
  208. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  209. package/src/module/integration/controller/integration.controller.ts +662 -662
  210. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  211. package/src/module/integration/dto/create-config.dto.ts +526 -526
  212. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  213. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  214. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  215. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  216. package/src/module/integration/examples/usage.example.ts +338 -338
  217. package/src/module/integration/factories/base.factory.ts +7 -7
  218. package/src/module/integration/factories/email.factory.ts +49 -49
  219. package/src/module/integration/factories/integration.factory.ts +121 -121
  220. package/src/module/integration/factories/sms.factory.ts +51 -51
  221. package/src/module/integration/factories/telephone.factory.ts +41 -41
  222. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  223. package/src/module/integration/integration.module.ts +110 -110
  224. package/src/module/integration/service/calendar-event.service.ts +118 -118
  225. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  226. package/src/module/integration/service/integration-queue.service.ts +229 -229
  227. package/src/module/integration/service/integration.service.ts +2633 -2633
  228. package/src/module/integration/service/oauth.service.ts +224 -224
  229. package/src/module/integration/service/wrapper.service.ts +700 -701
  230. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  231. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  232. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  233. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  234. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  235. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  236. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  237. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  238. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  239. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  240. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  241. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  242. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  243. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  244. package/src/module/layout/controller/layout.controller.ts +47 -47
  245. package/src/module/layout/entity/header-items.entity.ts +28 -28
  246. package/src/module/layout/entity/header-section.entity.ts +19 -19
  247. package/src/module/layout/layout.module.ts +21 -21
  248. package/src/module/layout/repository/header-items.repository.ts +18 -18
  249. package/src/module/layout/repository/header-section.repository.ts +22 -22
  250. package/src/module/layout/service/header-section.service.ts +25 -25
  251. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  252. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  253. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  254. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  255. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  256. package/src/module/lead/controller/lead.controller.ts +30 -30
  257. package/src/module/lead/lead.module.ts +14 -14
  258. package/src/module/lead/repository/lead.repository.ts +41 -41
  259. package/src/module/lead/service/lead.service.ts +54 -54
  260. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +10 -10
  261. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +48 -48
  262. package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
  263. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
  264. package/src/module/linked_attributes/service/linked_attributes.service.ts +22 -22
  265. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  266. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  267. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  268. package/src/module/listmaster/listmaster.module.ts +46 -46
  269. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  270. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  271. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  272. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  273. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  274. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  275. package/src/module/listmaster/service/list-master.service.ts +535 -535
  276. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  277. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  278. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  279. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  280. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  281. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  282. package/src/module/mapper/mapper.module.ts +34 -34
  283. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  284. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  285. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  286. package/src/module/mapper/service/field-mapper.service.ts +271 -271
  287. package/src/module/mapper/service/mapper.service.ts +79 -79
  288. package/src/module/master/controller/master.controller.ts +74 -74
  289. package/src/module/master/service/master.service.ts +483 -483
  290. package/src/module/meta/controller/app-master.controller.ts +38 -38
  291. package/src/module/meta/controller/attribute-master.controller.ts +86 -86
  292. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  293. package/src/module/meta/controller/entity-master.controller.ts +41 -41
  294. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  295. package/src/module/meta/controller/entity.controller.ts +392 -392
  296. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  297. package/src/module/meta/controller/media.controller.ts +107 -107
  298. package/src/module/meta/controller/meta.controller.ts +96 -96
  299. package/src/module/meta/controller/view-master.controller.ts +86 -86
  300. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  301. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  302. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  303. package/src/module/meta/entity/app-master.entity.ts +34 -34
  304. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  305. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  306. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  307. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  308. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  309. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  310. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  311. package/src/module/meta/entity/media-data.entity.ts +32 -32
  312. package/src/module/meta/entity/preference.entity.ts +62 -62
  313. package/src/module/meta/entity/view-master.entity.ts +41 -41
  314. package/src/module/meta/entity.module.ts +166 -166
  315. package/src/module/meta/repository/app-master.repository.ts +20 -20
  316. package/src/module/meta/repository/attribute-master.repository.ts +138 -138
  317. package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -44
  318. package/src/module/meta/repository/entity-master.repository.ts +99 -99
  319. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  320. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  321. package/src/module/meta/repository/media-data.repository.ts +50 -50
  322. package/src/module/meta/repository/preference.repository.ts +20 -20
  323. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  324. package/src/module/meta/repository/view-master.repository.ts +42 -42
  325. package/src/module/meta/service/app-master.service.ts +37 -37
  326. package/src/module/meta/service/attribute-master.service.ts +130 -130
  327. package/src/module/meta/service/common.service.ts +9 -9
  328. package/src/module/meta/service/entity-attribute-update.service.ts +28 -28
  329. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  330. package/src/module/meta/service/entity-list.service.ts +205 -205
  331. package/src/module/meta/service/entity-master.service.ts +175 -175
  332. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  333. package/src/module/meta/service/entity-relation.service.ts +69 -69
  334. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  335. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  336. package/src/module/meta/service/entity-table.service.ts +150 -150
  337. package/src/module/meta/service/entity-validation.service.ts +187 -187
  338. package/src/module/meta/service/entity.service.ts +67 -67
  339. package/src/module/meta/service/field-group.service.ts +103 -103
  340. package/src/module/meta/service/media-data.service.ts +507 -507
  341. package/src/module/meta/service/populate-meta.service.ts +193 -193
  342. package/src/module/meta/service/preference.service.ts +16 -16
  343. package/src/module/meta/service/resolver.service.ts +267 -267
  344. package/src/module/meta/service/section-master.service.ts +104 -104
  345. package/src/module/meta/service/update-form-json.service.ts +22 -22
  346. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  347. package/src/module/meta/service/view-master.service.ts +127 -127
  348. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  349. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  350. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  351. package/src/module/module/controller/menu.controller.ts +15 -15
  352. package/src/module/module/controller/module-access.controller.ts +134 -134
  353. package/src/module/module/entity/menu.entity.ts +43 -43
  354. package/src/module/module/entity/module-access.entity.ts +25 -25
  355. package/src/module/module/entity/module-action.entity.ts +17 -17
  356. package/src/module/module/entity/module.entity.ts +52 -52
  357. package/src/module/module/module.module.ts +42 -42
  358. package/src/module/module/repository/menu.repository.ts +184 -184
  359. package/src/module/module/repository/module-access.repository.ts +344 -344
  360. package/src/module/module/service/menu.service.ts +82 -82
  361. package/src/module/module/service/module-access.service.ts +209 -194
  362. package/src/module/notification/controller/notification.controller.ts +58 -58
  363. package/src/module/notification/controller/otp.controller.ts +117 -117
  364. package/src/module/notification/entity/notification.entity.ts +26 -26
  365. package/src/module/notification/entity/otp.entity.ts +28 -28
  366. package/src/module/notification/firebase-admin.config.ts +22 -22
  367. package/src/module/notification/notification.module.ts +69 -69
  368. package/src/module/notification/repository/otp.repository.ts +27 -27
  369. package/src/module/notification/service/email.service.ts +127 -127
  370. package/src/module/notification/service/notification.service.ts +163 -160
  371. package/src/module/notification/service/otp.service.ts +132 -132
  372. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  373. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  374. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  375. package/src/module/third-party-module/third-party.module.ts +12 -12
  376. package/src/module/user/controller/login.controller.ts +197 -197
  377. package/src/module/user/controller/user.controller.ts +40 -40
  378. package/src/module/user/dto/create-user.dto.ts +62 -62
  379. package/src/module/user/dto/update-user.dto.ts +4 -4
  380. package/src/module/user/entity/role.entity.ts +33 -33
  381. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  382. package/src/module/user/entity/user-session.entity.ts +73 -73
  383. package/src/module/user/entity/user.entity.ts +59 -59
  384. package/src/module/user/repository/role.repository.ts +96 -96
  385. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  386. package/src/module/user/repository/user.repository.ts +50 -50
  387. package/src/module/user/repository/userSession.repository.ts +33 -33
  388. package/src/module/user/service/login.service.ts +304 -304
  389. package/src/module/user/service/role.service.ts +189 -189
  390. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  391. package/src/module/user/service/user-session.service.ts +168 -168
  392. package/src/module/user/service/user.service.ts +368 -365
  393. package/src/module/user/user.module.ts +65 -65
  394. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  395. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  396. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  397. package/src/module/workflow/controller/action.controller.ts +111 -111
  398. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  399. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  400. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  401. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  402. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  403. package/src/module/workflow/controller/stage.controller.ts +50 -50
  404. package/src/module/workflow/controller/task.controller.ts +77 -77
  405. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  406. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  407. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  408. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  409. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  410. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  411. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  412. package/src/module/workflow/entity/action.entity.ts +53 -53
  413. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  414. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  415. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  416. package/src/module/workflow/entity/form.entity.ts +25 -25
  417. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  418. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  419. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  420. package/src/module/workflow/entity/stage.entity.ts +20 -20
  421. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  422. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  423. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  424. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  425. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  426. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  427. package/src/module/workflow/repository/action-data.repository.ts +334 -334
  428. package/src/module/workflow/repository/action.repository.ts +323 -323
  429. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  430. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  431. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  432. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  433. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  434. package/src/module/workflow/repository/stage.repository.ts +172 -172
  435. package/src/module/workflow/repository/task.repository.ts +134 -134
  436. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  437. package/src/module/workflow/service/action-category.service.ts +33 -33
  438. package/src/module/workflow/service/action-data.service.ts +62 -62
  439. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  440. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  441. package/src/module/workflow/service/action.service.ts +279 -279
  442. package/src/module/workflow/service/activity-log.service.ts +107 -107
  443. package/src/module/workflow/service/comm-template.service.ts +180 -180
  444. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  445. package/src/module/workflow/service/form-master.service.ts +35 -35
  446. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  447. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  448. package/src/module/workflow/service/stage-group.service.ts +319 -319
  449. package/src/module/workflow/service/stage.service.ts +199 -199
  450. package/src/module/workflow/service/task.service.ts +569 -569
  451. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  452. package/src/module/workflow/service/workflow-meta.service.ts +654 -654
  453. package/src/module/workflow/service/workflow.service.ts +205 -205
  454. package/src/module/workflow/workflow.module.ts +176 -176
  455. package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
  456. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
  457. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  458. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
  459. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  460. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  461. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  462. package/src/module/workflow-automation/service/schedule-handler.service.ts +149 -149
  463. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  464. package/src/module/workflow-automation/service/workflow-automation.service.ts +508 -508
  465. package/src/module/workflow-automation/workflow-automation.module.ts +47 -47
  466. package/src/module/workflow-schedule/INSTALLATION.md +244 -244
  467. package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
  468. package/src/module/workflow-schedule/README.md +422 -422
  469. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
  470. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
  471. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
  472. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
  473. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
  474. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
  475. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
  476. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
  477. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
  478. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
  479. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
  480. package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
  481. package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -584
  482. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -600
  483. package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
  484. package/src/resources/dev.properties.yaml +30 -31
  485. package/src/resources/local.properties.yaml +27 -27
  486. package/src/resources/properties.module.ts +12 -12
  487. package/src/resources/properties.yaml.ts +11 -11
  488. package/src/resources/uat.properties.yaml +31 -31
  489. package/src/table.config.ts +130 -130
  490. package/src/utils/dto/excel-data.dto.ts +14 -14
  491. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  492. package/src/utils/service/base64util.service.ts +18 -18
  493. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  494. package/src/utils/service/codeGenerator.service.ts +22 -22
  495. package/src/utils/service/dateUtil.service.ts +17 -17
  496. package/src/utils/service/encryptUtil.service.ts +97 -97
  497. package/src/utils/service/excel-helper.service.ts +72 -72
  498. package/src/utils/service/excelUtil.service.ts +15 -15
  499. package/src/utils/service/file-util.service.ts +11 -11
  500. package/src/utils/service/json-util.service.ts +23 -23
  501. package/src/utils/service/loggingUtil.service.ts +88 -88
  502. package/src/utils/service/reflection-helper.service.ts +62 -62
  503. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  504. package/src/utils/utils.module.ts +27 -27
  505. package/tsconfig.build.json +4 -4
  506. package/tsconfig.json +24 -24
  507. package/.claude/settings.local.json +0 -26
  508. package/.idea/250218_nodejs_core.iml +0 -9
  509. package/.idea/codeStyles/Project.xml +0 -59
  510. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  511. package/.idea/copilot.data.migration.agent.xml +0 -6
  512. package/.idea/copilot.data.migration.ask.xml +0 -6
  513. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  514. package/.idea/copilot.data.migration.edit.xml +0 -6
  515. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  516. package/.idea/misc.xml +0 -6
  517. package/.idea/modules.xml +0 -8
  518. package/.idea/prettier.xml +0 -6
  519. package/.idea/vcs.xml +0 -6
  520. 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
+ }