rez_core 5.0.169 → 5.0.172

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 (451) hide show
  1. package/.idea/250218_nodejs_core.iml +11 -8
  2. package/.idea/codeStyles/Project.xml +58 -58
  3. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  4. package/.idea/modules.xml +7 -7
  5. package/.idea/vcs.xml +5 -5
  6. package/.prettierrc +3 -3
  7. package/README.md +99 -99
  8. package/dist/module/auth/guards/role.guard.js +3 -3
  9. package/dist/module/filter/repository/saved-filter.repository.js +5 -3
  10. package/dist/module/filter/repository/saved-filter.repository.js.map +1 -1
  11. package/dist/module/filter/service/filter.service.js +19 -19
  12. package/dist/module/integration/examples/usage.example.js +9 -9
  13. package/dist/module/layout_preference/controller/layout_preference.controller.js +3 -0
  14. package/dist/module/layout_preference/controller/layout_preference.controller.js.map +1 -1
  15. package/dist/module/layout_preference/service/layout_preference.service.js +1 -1
  16. package/dist/module/layout_preference/service/layout_preference.service.js.map +1 -1
  17. package/dist/module/meta/controller/entity.controller.d.ts +0 -2
  18. package/dist/module/meta/controller/entity.controller.js +0 -23
  19. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  20. package/dist/module/meta/controller/meta.controller.js +5 -0
  21. package/dist/module/meta/controller/meta.controller.js.map +1 -1
  22. package/dist/module/meta/controller/view-master.controller.js +2 -0
  23. package/dist/module/meta/controller/view-master.controller.js.map +1 -1
  24. package/dist/module/meta/entity.module.js +0 -3
  25. package/dist/module/meta/entity.module.js.map +1 -1
  26. package/dist/module/meta/repository/attribute-master.repository.js +8 -8
  27. package/dist/module/meta/repository/entity-master.repository.d.ts +1 -0
  28. package/dist/module/meta/repository/entity-master.repository.js +15 -3
  29. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  30. package/dist/module/meta/repository/entity-table-column.repository.d.ts +1 -1
  31. package/dist/module/meta/repository/entity-table-column.repository.js +3 -3
  32. package/dist/module/meta/repository/entity-table-column.repository.js.map +1 -1
  33. package/dist/module/meta/repository/entity-table.repository.d.ts +2 -2
  34. package/dist/module/meta/repository/entity-table.repository.js +4 -4
  35. package/dist/module/meta/repository/entity-table.repository.js.map +1 -1
  36. package/dist/module/meta/repository/view-master.repository.d.ts +1 -1
  37. package/dist/module/meta/repository/view-master.repository.js +2 -2
  38. package/dist/module/meta/repository/view-master.repository.js.map +1 -1
  39. package/dist/module/meta/service/entity-dynamic.service.js +24 -27
  40. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  41. package/dist/module/meta/service/entity-service-impl.service.d.ts +0 -4
  42. package/dist/module/meta/service/entity-service-impl.service.js +10 -15
  43. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  44. package/dist/module/meta/service/entity-table-column.service.d.ts +1 -2
  45. package/dist/module/meta/service/entity-table-column.service.js +2 -10
  46. package/dist/module/meta/service/entity-table-column.service.js.map +1 -1
  47. package/dist/module/meta/service/entity-table.service.d.ts +1 -1
  48. package/dist/module/meta/service/entity-table.service.js +5 -5
  49. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  50. package/dist/module/meta/service/entity-validation.service.d.ts +6 -5
  51. package/dist/module/meta/service/entity-validation.service.js +11 -12
  52. package/dist/module/meta/service/entity-validation.service.js.map +1 -1
  53. package/dist/module/meta/service/entity.service.d.ts +0 -2
  54. package/dist/module/meta/service/media-data.service.js +6 -6
  55. package/dist/module/meta/service/resolver.service.js +18 -19
  56. package/dist/module/meta/service/resolver.service.js.map +1 -1
  57. package/dist/module/meta/service/view-master.service.js +1 -1
  58. package/dist/module/meta/service/view-master.service.js.map +1 -1
  59. package/dist/module/module/repository/menu.repository.js +4 -4
  60. package/dist/module/notification/service/notification.service.js +6 -6
  61. package/dist/module/user/controller/login.controller.js +18 -18
  62. package/dist/module/workflow/repository/action.repository.js +2 -2
  63. package/dist/module/workflow/repository/stage.repository.js +8 -8
  64. package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
  65. package/dist/module/workflow/service/action.service.js +5 -5
  66. package/dist/module/workflow/service/entity-modification.service.js +2 -2
  67. package/dist/module/workflow/service/task.service.js +8 -8
  68. package/dist/module/workflow-automation/service/schedule-handler.service.js +9 -9
  69. package/dist/module/workflow-automation/service/workflow-automation.service.js +4 -2
  70. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  71. package/dist/tsconfig.build.tsbuildinfo +1 -1
  72. package/dist/utils/service/reflection-helper.service.js +2 -2
  73. package/docs/modules/event-driven-integration-design.md +91 -91
  74. package/docs/modules/integration.md +250 -250
  75. package/eslint.config.mjs +34 -34
  76. package/nest-cli.json +14 -14
  77. package/package.json +125 -125
  78. package/src/app.controller.ts +12 -12
  79. package/src/app.module.ts +68 -68
  80. package/src/app.service.ts +8 -8
  81. package/src/config/bull.config.ts +69 -69
  82. package/src/config/config.module.ts +17 -17
  83. package/src/config/database.config.ts +48 -48
  84. package/src/constant/global.constant.ts +67 -67
  85. package/src/core.module.ts +94 -94
  86. package/src/decorators/roles.decorator.ts +7 -7
  87. package/src/dtos/response.dto.ts +6 -6
  88. package/src/dtos/response.ts +5 -5
  89. package/src/index.ts +1 -1
  90. package/src/module/auth/auth.module.ts +49 -49
  91. package/src/module/auth/controller/auth.controller.ts +28 -28
  92. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  93. package/src/module/auth/guards/jwt.guard.ts +22 -22
  94. package/src/module/auth/guards/role.guard.ts +68 -68
  95. package/src/module/auth/services/auth.service.ts +56 -56
  96. package/src/module/auth/services/jwt.service.ts +11 -11
  97. package/src/module/auth/strategies/google.strategy.ts +54 -54
  98. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  99. package/src/module/auth/strategies/local.strategy.ts +13 -13
  100. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  101. package/src/module/dashboard/dashboard.module.ts +21 -21
  102. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  103. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  104. package/src/module/dashboard/repository/dashboard.repository.ts +51 -51
  105. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  106. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  107. package/src/module/enterprise/enterprise.module.ts +30 -30
  108. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  109. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  110. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  111. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  112. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  113. package/src/module/enterprise/repository/school.repository.ts +272 -272
  114. package/src/module/enterprise/service/brand.service.ts +5 -5
  115. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  116. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  117. package/src/module/enterprise/service/organization.service.ts +145 -145
  118. package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
  119. package/src/module/entity_json/entity/entityJson.entity.ts +39 -39
  120. package/src/module/entity_json/entity_json.module.ts +18 -18
  121. package/src/module/entity_json/service/entityJson.repository.ts +37 -37
  122. package/src/module/entity_json/service/entity_json.service.ts +242 -242
  123. package/src/module/export/controller/export.controller.ts +83 -83
  124. package/src/module/export/export.module.ts +14 -14
  125. package/src/module/export/service/export.service.ts +105 -105
  126. package/src/module/filter/controller/filter.controller.ts +84 -84
  127. package/src/module/filter/dto/filter-request.dto.ts +39 -39
  128. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  129. package/src/module/filter/entity/saved-filter-master.entity.ts +32 -32
  130. package/src/module/filter/filter.module.ts +33 -33
  131. package/src/module/filter/repository/saved-filter.repository.ts +258 -256
  132. package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
  133. package/src/module/filter/service/filter-evaluator.service.ts +82 -82
  134. package/src/module/filter/service/filter.service.ts +1319 -1319
  135. package/src/module/filter/service/saved-filter.service.ts +164 -164
  136. package/src/module/ics/controller/ics.controller.ts +21 -21
  137. package/src/module/ics/dto/ics.dto.ts +55 -55
  138. package/src/module/ics/ics.module.ts +13 -13
  139. package/src/module/ics/service/ics.service.ts +57 -57
  140. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  141. package/src/module/integration/controller/integration.controller.ts +662 -662
  142. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  143. package/src/module/integration/dto/create-config.dto.ts +526 -526
  144. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  145. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  146. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  147. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  148. package/src/module/integration/examples/usage.example.ts +338 -338
  149. package/src/module/integration/factories/base.factory.ts +7 -7
  150. package/src/module/integration/factories/email.factory.ts +49 -49
  151. package/src/module/integration/factories/integration.factory.ts +121 -121
  152. package/src/module/integration/factories/sms.factory.ts +51 -51
  153. package/src/module/integration/factories/telephone.factory.ts +41 -41
  154. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  155. package/src/module/integration/integration.module.ts +110 -110
  156. package/src/module/integration/service/calendar-event.service.ts +118 -118
  157. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  158. package/src/module/integration/service/integration-queue.service.ts +229 -229
  159. package/src/module/integration/service/integration.service.ts +2634 -2634
  160. package/src/module/integration/service/oauth.service.ts +224 -224
  161. package/src/module/integration/service/wrapper.service.ts +753 -753
  162. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  163. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  164. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  165. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  166. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  167. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  168. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  169. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  170. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  171. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  172. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  173. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  174. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  175. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  176. package/src/module/layout/controller/layout.controller.ts +47 -47
  177. package/src/module/layout/entity/header-items.entity.ts +28 -28
  178. package/src/module/layout/entity/header-section.entity.ts +19 -19
  179. package/src/module/layout/layout.module.ts +21 -21
  180. package/src/module/layout/repository/header-items.repository.ts +18 -18
  181. package/src/module/layout/repository/header-section.repository.ts +22 -22
  182. package/src/module/layout/service/header-section.service.ts +25 -25
  183. package/src/module/layout_preference/controller/layout_preference.controller.ts +76 -73
  184. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  185. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  186. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  187. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  188. package/src/module/lead/controller/lead.controller.ts +30 -30
  189. package/src/module/lead/lead.module.ts +14 -14
  190. package/src/module/lead/repository/lead.repository.ts +41 -41
  191. package/src/module/lead/service/lead.service.ts +54 -54
  192. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +37 -37
  193. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
  194. package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
  195. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
  196. package/src/module/linked_attributes/service/linked_attributes.service.ts +75 -75
  197. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  198. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  199. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  200. package/src/module/listmaster/listmaster.module.ts +46 -46
  201. package/src/module/listmaster/repository/list-master-items.repository.ts +173 -173
  202. package/src/module/listmaster/repository/list-master.repository.ts +56 -56
  203. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  204. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  205. package/src/module/listmaster/service/list-master-item.service.ts +281 -281
  206. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  207. package/src/module/listmaster/service/list-master.service.ts +535 -535
  208. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  209. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  210. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  211. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  212. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  213. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  214. package/src/module/mapper/mapper.module.ts +35 -35
  215. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  216. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  217. package/src/module/mapper/repository/mapper.repository.ts +32 -32
  218. package/src/module/mapper/service/field-mapper.service.ts +269 -269
  219. package/src/module/mapper/service/mapper.service.ts +81 -81
  220. package/src/module/master/controller/master.controller.ts +74 -74
  221. package/src/module/master/service/master.service.ts +483 -483
  222. package/src/module/meta/controller/app-master.controller.ts +38 -38
  223. package/src/module/meta/controller/attribute-master.controller.ts +84 -84
  224. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  225. package/src/module/meta/controller/entity-master.controller.ts +41 -41
  226. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  227. package/src/module/meta/controller/entity.controller.ts +308 -342
  228. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  229. package/src/module/meta/controller/media.controller.ts +135 -135
  230. package/src/module/meta/controller/meta.controller.ts +101 -96
  231. package/src/module/meta/controller/view-master.controller.ts +79 -86
  232. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  233. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  234. package/src/module/meta/dto/entity-table.dto.ts +12 -12
  235. package/src/module/meta/entity/app-master.entity.ts +37 -37
  236. package/src/module/meta/entity/attribute-master.entity.ts +92 -92
  237. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  238. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  239. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  240. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  241. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  242. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  243. package/src/module/meta/entity/media-data.entity.ts +32 -32
  244. package/src/module/meta/entity/preference.entity.ts +62 -62
  245. package/src/module/meta/entity/view-master.entity.ts +41 -41
  246. package/src/module/meta/entity.module.ts +165 -168
  247. package/src/module/meta/repository/app-master.repository.ts +20 -20
  248. package/src/module/meta/repository/attribute-master.repository.ts +164 -164
  249. package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
  250. package/src/module/meta/repository/entity-master.repository.ts +120 -106
  251. package/src/module/meta/repository/entity-relation.repository.ts +22 -22
  252. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  253. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  254. package/src/module/meta/repository/media-data.repository.ts +50 -50
  255. package/src/module/meta/repository/preference.repository.ts +20 -20
  256. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  257. package/src/module/meta/repository/view-master.repository.ts +42 -42
  258. package/src/module/meta/service/app-master.service.ts +37 -37
  259. package/src/module/meta/service/attribute-master.service.ts +131 -131
  260. package/src/module/meta/service/common.service.ts +9 -9
  261. package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
  262. package/src/module/meta/service/entity-dynamic.service.ts +824 -826
  263. package/src/module/meta/service/entity-master.service.ts +171 -171
  264. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  265. package/src/module/meta/service/entity-relation.service.ts +74 -74
  266. package/src/module/meta/service/entity-service-impl.service.ts +388 -439
  267. package/src/module/meta/service/entity-table-column.service.ts +26 -39
  268. package/src/module/meta/service/entity-table.service.ts +157 -157
  269. package/src/module/meta/service/entity-validation.service.ts +188 -187
  270. package/src/module/meta/service/entity.service.ts +49 -59
  271. package/src/module/meta/service/field-group.service.ts +103 -103
  272. package/src/module/meta/service/media-data.service.ts +591 -591
  273. package/src/module/meta/service/populate-meta.service.ts +222 -222
  274. package/src/module/meta/service/preference.service.ts +16 -16
  275. package/src/module/meta/service/resolver.service.ts +289 -291
  276. package/src/module/meta/service/section-master.service.ts +104 -104
  277. package/src/module/meta/service/update-form-json.service.ts +22 -22
  278. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  279. package/src/module/meta/service/view-master.service.ts +127 -127
  280. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  281. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  282. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  283. package/src/module/module/controller/menu.controller.ts +15 -15
  284. package/src/module/module/controller/module-access.controller.ts +133 -133
  285. package/src/module/module/entity/menu.entity.ts +43 -43
  286. package/src/module/module/entity/module-access.entity.ts +25 -25
  287. package/src/module/module/entity/module-action.entity.ts +17 -17
  288. package/src/module/module/entity/module.entity.ts +52 -52
  289. package/src/module/module/module.module.ts +42 -42
  290. package/src/module/module/repository/menu.repository.ts +186 -186
  291. package/src/module/module/repository/module-access.repository.ts +344 -344
  292. package/src/module/module/service/menu.service.ts +82 -82
  293. package/src/module/module/service/module-access.service.ts +189 -189
  294. package/src/module/notification/controller/notification.controller.ts +58 -58
  295. package/src/module/notification/controller/otp.controller.ts +117 -117
  296. package/src/module/notification/entity/notification.entity.ts +26 -26
  297. package/src/module/notification/entity/otp.entity.ts +28 -28
  298. package/src/module/notification/firebase-admin.config.ts +22 -22
  299. package/src/module/notification/notification.module.ts +69 -69
  300. package/src/module/notification/repository/otp.repository.ts +27 -27
  301. package/src/module/notification/service/email.service.ts +127 -127
  302. package/src/module/notification/service/notification.service.ts +164 -164
  303. package/src/module/notification/service/otp.service.ts +133 -133
  304. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  305. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  306. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  307. package/src/module/third-party-module/third-party.module.ts +12 -12
  308. package/src/module/user/controller/login.controller.ts +198 -198
  309. package/src/module/user/controller/user.controller.ts +40 -40
  310. package/src/module/user/dto/create-user.dto.ts +62 -62
  311. package/src/module/user/dto/update-user.dto.ts +4 -4
  312. package/src/module/user/entity/role.entity.ts +33 -33
  313. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  314. package/src/module/user/entity/user-session.entity.ts +73 -73
  315. package/src/module/user/entity/user.entity.ts +59 -59
  316. package/src/module/user/repository/role.repository.ts +96 -96
  317. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  318. package/src/module/user/repository/user.repository.ts +50 -50
  319. package/src/module/user/repository/userSession.repository.ts +33 -33
  320. package/src/module/user/service/login.service.ts +326 -326
  321. package/src/module/user/service/role.service.ts +197 -197
  322. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  323. package/src/module/user/service/user-session.service.ts +200 -200
  324. package/src/module/user/service/user.service.ts +368 -368
  325. package/src/module/user/user.module.ts +65 -65
  326. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  327. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  328. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  329. package/src/module/workflow/controller/action.controller.ts +111 -111
  330. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  331. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  332. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  333. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  334. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  335. package/src/module/workflow/controller/stage.controller.ts +50 -50
  336. package/src/module/workflow/controller/task.controller.ts +77 -77
  337. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  338. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  339. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  340. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  341. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  342. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  343. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  344. package/src/module/workflow/entity/action.entity.ts +53 -53
  345. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  346. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  347. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  348. package/src/module/workflow/entity/form.entity.ts +25 -25
  349. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  350. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  351. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  352. package/src/module/workflow/entity/stage.entity.ts +20 -20
  353. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  354. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  355. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  356. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  357. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  358. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  359. package/src/module/workflow/repository/action-data.repository.ts +346 -346
  360. package/src/module/workflow/repository/action.repository.ts +339 -339
  361. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  362. package/src/module/workflow/repository/comm-template.repository.ts +157 -157
  363. package/src/module/workflow/repository/form-master.repository.ts +50 -50
  364. package/src/module/workflow/repository/stage-group.repository.ts +186 -186
  365. package/src/module/workflow/repository/stage-movement.repository.ts +257 -257
  366. package/src/module/workflow/repository/stage.repository.ts +160 -160
  367. package/src/module/workflow/repository/task.repository.ts +151 -151
  368. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  369. package/src/module/workflow/service/action-category.service.ts +33 -33
  370. package/src/module/workflow/service/action-data.service.ts +62 -62
  371. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  372. package/src/module/workflow/service/action-template-mapping.service.ts +140 -140
  373. package/src/module/workflow/service/action.service.ts +302 -302
  374. package/src/module/workflow/service/activity-log.service.ts +107 -107
  375. package/src/module/workflow/service/comm-template.service.ts +180 -180
  376. package/src/module/workflow/service/entity-modification.service.ts +61 -61
  377. package/src/module/workflow/service/form-master.service.ts +35 -35
  378. package/src/module/workflow/service/populate-workflow.service.ts +320 -320
  379. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  380. package/src/module/workflow/service/stage-group.service.ts +344 -344
  381. package/src/module/workflow/service/stage.service.ts +207 -207
  382. package/src/module/workflow/service/task.service.ts +550 -550
  383. package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
  384. package/src/module/workflow/service/workflow-meta.service.ts +639 -639
  385. package/src/module/workflow/service/workflow.service.ts +213 -213
  386. package/src/module/workflow/workflow.module.ts +180 -180
  387. package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
  388. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
  389. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  390. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
  391. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  392. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  393. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  394. package/src/module/workflow-automation/service/schedule-handler.service.ts +168 -168
  395. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +219 -219
  396. package/src/module/workflow-automation/service/workflow-automation.service.ts +519 -515
  397. package/src/module/workflow-automation/workflow-automation.module.ts +54 -54
  398. package/src/module/workflow-schedule/INSTALLATION.md +244 -244
  399. package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
  400. package/src/module/workflow-schedule/README.md +422 -422
  401. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
  402. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
  403. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
  404. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
  405. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
  406. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
  407. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
  408. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
  409. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
  410. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
  411. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
  412. package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
  413. package/src/module/workflow-schedule/processors/schedule.processor.ts +620 -620
  414. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +598 -598
  415. package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
  416. package/src/resources/dev.properties.yaml +31 -31
  417. package/src/resources/local.properties.yaml +27 -27
  418. package/src/resources/properties.module.ts +12 -12
  419. package/src/resources/properties.yaml.ts +11 -11
  420. package/src/resources/uat.properties.yaml +31 -31
  421. package/src/table.config.ts +133 -133
  422. package/src/utils/dto/excel-data.dto.ts +14 -14
  423. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  424. package/src/utils/service/base64util.service.ts +18 -18
  425. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  426. package/src/utils/service/codeGenerator.service.ts +22 -22
  427. package/src/utils/service/dateUtil.service.ts +17 -17
  428. package/src/utils/service/encryptUtil.service.ts +97 -97
  429. package/src/utils/service/excel-helper.service.ts +72 -72
  430. package/src/utils/service/excelUtil.service.ts +15 -15
  431. package/src/utils/service/file-util.service.ts +11 -11
  432. package/src/utils/service/json-util.service.ts +23 -23
  433. package/src/utils/service/loggingUtil.service.ts +88 -88
  434. package/src/utils/service/reflection-helper.service.ts +62 -62
  435. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  436. package/src/utils/utils.module.ts +27 -27
  437. package/tsconfig.build.json +4 -4
  438. package/tsconfig.json +24 -24
  439. package/.claude/settings.local.json +0 -26
  440. package/.idea/copilot.data.migration.agent.xml +0 -6
  441. package/.idea/copilot.data.migration.ask.xml +0 -6
  442. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  443. package/.idea/copilot.data.migration.edit.xml +0 -6
  444. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  445. package/.idea/misc.xml +0 -6
  446. package/.idea/prettier.xml +0 -6
  447. package/dist/module/meta/service/entity-list.service.d.ts +0 -17
  448. package/dist/module/meta/service/entity-list.service.js +0 -142
  449. package/dist/module/meta/service/entity-list.service.js.map +0 -1
  450. package/server.log +0 -850
  451. package/src/module/meta/service/entity-list.service.ts +0 -201
@@ -1,342 +1,308 @@
1
- import {
2
- BadRequestException,
3
- Body,
4
- Controller,
5
- Get,
6
- HttpCode,
7
- HttpStatus,
8
- InternalServerErrorException,
9
- NotFoundException,
10
- Param,
11
- Post,
12
- Query,
13
- Req,
14
- Request,
15
- Res,
16
- UseGuards,
17
- } from '@nestjs/common';
18
- import { EntityServiceImpl } from '../service/entity-service-impl.service';
19
- import { Response } from 'express';
20
- import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
21
- import { EntityMasterService } from '../service/entity-master.service';
22
- import { BaseEntity } from '../entity/base-entity.entity';
23
- import { JwtAuthGuard } from '../../auth/guards/jwt.guard';
24
- import * as fs from 'fs';
25
- import * as path from 'path';
26
- import { UserData } from '../../user/entity/user.entity';
27
- import {
28
- WorkflowAutomationEngineService,
29
- } from 'src/module/workflow-automation/service/workflow-automation-engine.service';
30
-
31
- @UseGuards(JwtAuthGuard)
32
- @Controller('entity')
33
- export class EntityController {
34
- constructor(
35
- private entityService: EntityServiceImpl,
36
- private reflectionHelper: ReflectionHelper,
37
- private entityMasterService: EntityMasterService,
38
- private readonly workflowAutomationEngineService: WorkflowAutomationEngineService,
39
- ) {
40
- }
41
-
42
- @Get('getById/:id')
43
- // @Roles('USR', 'VIEW')
44
- async getById(
45
- @Param('id') id: number,
46
- @Req() req: Request & { user: any },
47
- @Query('entity_type') entityType?: string,
48
- ) {
49
- const loggedInUser = req.user.userData;
50
-
51
- if (!entityType) {
52
- throw new BadRequestException(
53
- 'Query parameter "entity_type" is required',
54
- );
55
- }
56
- const entityMaster = await this.entityMasterService.getEntityData(
57
- entityType,
58
- loggedInUser,
59
- );
60
-
61
- const entityService =
62
- await this.reflectionHelper.getBean<EntityServiceImpl>(
63
- entityMaster.entity_service,
64
- );
65
-
66
- if (entityService) {
67
- return await entityService.getEntityData(entityType, id, loggedInUser);
68
- }
69
- }
70
-
71
- @Get('getByCode/:code')
72
- async getDataByCode(
73
- @Param('code') code: string,
74
- @Req() req: Request & { user: any },
75
- @Query('entity_type') entityType?: string,
76
- ) {
77
- const loggedInUser = req.user.userData;
78
-
79
- if (!entityType) {
80
- throw new BadRequestException(
81
- 'Query parameter "entity_type" is required',
82
- );
83
- }
84
-
85
- const entityMaster = await this.entityMasterService.getEntityData(
86
- entityType,
87
- loggedInUser,
88
- );
89
-
90
- const entityService =
91
- await this.reflectionHelper.getBean<EntityServiceImpl>(
92
- entityMaster.entity_service,
93
- );
94
-
95
- if (entityService) {
96
- return await entityService.getEntityDataByCode(
97
- entityType,
98
- code,
99
- loggedInUser,
100
- );
101
- }
102
- }
103
-
104
- @Get('getResolvedById/:id')
105
- // @Roles('USR', 'VIEW')
106
- async getResolveDataById(
107
- @Param('id') id: number,
108
- @Req() req: Request & { user: any },
109
- @Query('entity_type') entityType?: string,
110
- ) {
111
- const loggedInUser = req.user.userData;
112
-
113
- if (!entityType) {
114
- throw new BadRequestException(
115
- 'Query parameter "entity_type" is required',
116
- );
117
- }
118
- const entityMaster = await this.entityMasterService.getEntityData(
119
- entityType,
120
- loggedInUser,
121
- );
122
-
123
- const entityService =
124
- await this.reflectionHelper.getBean<EntityServiceImpl>(
125
- entityMaster.entity_service,
126
- );
127
-
128
- if (entityService) {
129
- return await entityService.getResolvedEntityData(
130
- entityType,
131
- id,
132
- loggedInUser,
133
- );
134
- }
135
- }
136
-
137
- @Post('create')
138
- @HttpCode(200)
139
- async create(
140
- @Body() entityData: BaseEntity,
141
- @Query('entity_type') entityType: string,
142
- @Req() req: Request & { user: any },
143
- ) {
144
- const loggedInUser = req.user.userData;
145
- const appcode = loggedInUser.appcode;
146
-
147
- if (!entityType) {
148
- throw new BadRequestException(
149
- `Query parameter "entity_type" is required`,
150
- );
151
- }
152
-
153
- const entityMaster = await this.entityMasterService.getEntityData(
154
- entityType,
155
- loggedInUser,
156
- );
157
-
158
- const entityService =
159
- await this.reflectionHelper.getBean<EntityServiceImpl>(
160
- entityMaster.entity_service,
161
- );
162
-
163
- if (!entityService) {
164
- throw new InternalServerErrorException(
165
- `No service found for entity_type "${entityType}"`,
166
- );
167
- }
168
-
169
- // ✅ Create
170
- const savedData = await entityService.createEntity(
171
- entityData,
172
- loggedInUser as UserData,
173
- null,
174
- appcode,
175
- );
176
-
177
- // ✅ Run workflow automation (no preUpdateStates for CREATE)
178
- await this.workflowAutomationEngineService.handleEntityEvent(
179
- entityType,
180
- 'CREATE',
181
- savedData,
182
- loggedInUser,
183
- null,
184
- );
185
-
186
- return savedData;
187
- }
188
-
189
- @Post('update/:id')
190
- @HttpCode(200)
191
- async update(
192
- @Param('id') id: number,
193
- @Body() entityData: BaseEntity,
194
- @Query('entity_type') entityType: string,
195
- @Req() req: Request & { user: any },
196
- ) {
197
- const loggedInUser = req.user.userData;
198
-
199
- if (!entityType) {
200
- throw new BadRequestException(
201
- 'Query parameter "entity_type" is required',
202
- );
203
- }
204
-
205
- const entityMaster = await this.entityMasterService.getEntityData(
206
- entityType,
207
- loggedInUser,
208
- );
209
-
210
- const entityService =
211
- await this.reflectionHelper.getBean<EntityServiceImpl>(
212
- entityMaster.entity_service,
213
- );
214
-
215
- if (!entityService) {
216
- throw new InternalServerErrorException(
217
- `No service found for entity_type "${entityType}"`,
218
- );
219
- }
220
-
221
- // 1️⃣ Get old state
222
- const existingEntity = await entityService.getEntityData(
223
- entityType,
224
- id,
225
- loggedInUser,
226
- );
227
- if (!existingEntity) {
228
- throw new NotFoundException(`No entity found for id "${id}"`);
229
- }
230
-
231
- // 2️⃣ Pre-evaluate criteria
232
- const workflows = await this.workflowAutomationEngineService[
233
- 'wfService'
234
- ].getActiveRules(entityType, 'UPDATE', loggedInUser);
235
- const preUpdateStates: Record<number, boolean> = {};
236
- for (const wf of workflows) {
237
- preUpdateStates[wf.id] = await this.workflowAutomationEngineService[
238
- 'filterEvaluator'
239
- ].evaluateCriteria(
240
- entityType,
241
- wf.condition_filter_code,
242
- existingEntity.id,
243
- loggedInUser,
244
- );
245
- }
246
-
247
- // 3️⃣ Update
248
- const updatedData = await entityService.updateEntity(
249
- entityData,
250
- loggedInUser as UserData,
251
- );
252
-
253
- // 4️⃣ Run workflow automation (pass preUpdateStates)
254
- await this.workflowAutomationEngineService.handleEntityEvent(
255
- entityType,
256
- 'UPDATE',
257
- updatedData,
258
- loggedInUser,
259
- preUpdateStates,
260
- );
261
-
262
- return updatedData;
263
- }
264
-
265
- @Post('delete/:id')
266
- @HttpCode(200)
267
- async delete(
268
- @Param('id') id: number,
269
- @Query('entity_type') entityType: string,
270
- @Req() req: Request & { user: any },
271
- ) {
272
- const loggedInUser = req.user.userData;
273
-
274
- if (!entityType) {
275
- throw new BadRequestException(
276
- 'Query parameter "entity_type" is required',
277
- );
278
- }
279
-
280
- const entityMaster = await this.entityMasterService.getEntityData(
281
- entityType,
282
- loggedInUser,
283
- );
284
-
285
- const entityService =
286
- await this.reflectionHelper.getBean<EntityServiceImpl>(
287
- entityMaster.entity_service,
288
- );
289
-
290
- if (!entityService) {
291
- throw new InternalServerErrorException(
292
- `No service found for entity_type "${entityType}"`,
293
- );
294
- }
295
-
296
- const existingEntity = await entityService.getEntityData(
297
- entityType,
298
- id,
299
- loggedInUser,
300
- );
301
-
302
- if (!existingEntity) {
303
- throw new NotFoundException(`No entity found for id "${id}"`);
304
- }
305
-
306
- return await entityService.deleteEntity(entityType, id, loggedInUser);
307
- }
308
-
309
- @Post('getFilteredDataWithTabs/:entity_type')
310
- async getFilterDataWithTabs(
311
- @Param('entity_type') entityType: string,
312
- @Query('list_type') listType: string,
313
- @Res() res: Response,
314
- @Request() req,
315
- @Body() filters: Record<string, any> = {},
316
- @Query('sort_column') sortColumn?: string,
317
- @Query('sort_order') sortOrder?: string,
318
- @Query('page') page: number = 0,
319
- @Query('size') size: number = 1,
320
- @Query('tab_column') tabColumn?: string,
321
- @Query('tab_value') tabValue?: string,
322
- ) {
323
- const appcode = req.user.userData.appcode;
324
-
325
- return res
326
- .status(HttpStatus.OK)
327
- .json(
328
- await this.entityService.getFilterDataWithTabs(
329
- entityType,
330
- listType,
331
- filters,
332
- sortColumn,
333
- sortOrder,
334
- page,
335
- size,
336
- tabColumn,
337
- tabValue,
338
- appcode,
339
- ),
340
- );
341
- }
342
- }
1
+ import {
2
+ BadRequestException,
3
+ Body,
4
+ Controller,
5
+ Get,
6
+ HttpCode,
7
+ HttpStatus,
8
+ InternalServerErrorException,
9
+ NotFoundException,
10
+ Param,
11
+ Post,
12
+ Query,
13
+ Req,
14
+ Request,
15
+ Res,
16
+ UseGuards,
17
+ } from '@nestjs/common';
18
+ import { EntityServiceImpl } from '../service/entity-service-impl.service';
19
+ import { Response } from 'express';
20
+ import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
21
+ import { EntityMasterService } from '../service/entity-master.service';
22
+ import { BaseEntity } from '../entity/base-entity.entity';
23
+ import { JwtAuthGuard } from '../../auth/guards/jwt.guard';
24
+ import * as fs from 'fs';
25
+ import * as path from 'path';
26
+ import { UserData } from '../../user/entity/user.entity';
27
+ import {
28
+ WorkflowAutomationEngineService,
29
+ } from 'src/module/workflow-automation/service/workflow-automation-engine.service';
30
+
31
+ @UseGuards(JwtAuthGuard)
32
+ @Controller('entity')
33
+ export class EntityController {
34
+ constructor(
35
+ private entityService: EntityServiceImpl,
36
+ private reflectionHelper: ReflectionHelper,
37
+ private entityMasterService: EntityMasterService,
38
+ private readonly workflowAutomationEngineService: WorkflowAutomationEngineService,
39
+ ) {
40
+ }
41
+
42
+ @Get('getById/:id')
43
+ // @Roles('USR', 'VIEW')
44
+ async getById(
45
+ @Param('id') id: number,
46
+ @Req() req: Request & { user: any },
47
+ @Query('entity_type') entityType?: string,
48
+ ) {
49
+ const loggedInUser = req.user.userData;
50
+
51
+ if (!entityType) {
52
+ throw new BadRequestException(
53
+ 'Query parameter "entity_type" is required',
54
+ );
55
+ }
56
+ const entityMaster = await this.entityMasterService.getEntityData(
57
+ entityType,
58
+ loggedInUser,
59
+ );
60
+
61
+ const entityService =
62
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
63
+ entityMaster.entity_service,
64
+ );
65
+
66
+ if (entityService) {
67
+ return await entityService.getEntityData(entityType, id, loggedInUser);
68
+ }
69
+ }
70
+
71
+ @Get('getByCode/:code')
72
+ async getDataByCode(
73
+ @Param('code') code: string,
74
+ @Req() req: Request & { user: any },
75
+ @Query('entity_type') entityType?: string,
76
+ ) {
77
+ const loggedInUser = req.user.userData;
78
+
79
+ if (!entityType) {
80
+ throw new BadRequestException(
81
+ 'Query parameter "entity_type" is required',
82
+ );
83
+ }
84
+
85
+ const entityMaster = await this.entityMasterService.getEntityData(
86
+ entityType,
87
+ loggedInUser,
88
+ );
89
+
90
+ const entityService =
91
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
92
+ entityMaster.entity_service,
93
+ );
94
+
95
+ if (entityService) {
96
+ return await entityService.getEntityDataByCode(
97
+ entityType,
98
+ code,
99
+ loggedInUser,
100
+ );
101
+ }
102
+ }
103
+
104
+ @Get('getResolvedById/:id')
105
+ // @Roles('USR', 'VIEW')
106
+ async getResolveDataById(
107
+ @Param('id') id: number,
108
+ @Req() req: Request & { user: any },
109
+ @Query('entity_type') entityType?: string,
110
+ ) {
111
+ const loggedInUser = req.user.userData;
112
+
113
+ if (!entityType) {
114
+ throw new BadRequestException(
115
+ 'Query parameter "entity_type" is required',
116
+ );
117
+ }
118
+ const entityMaster = await this.entityMasterService.getEntityData(
119
+ entityType,
120
+ loggedInUser,
121
+ );
122
+
123
+ const entityService =
124
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
125
+ entityMaster.entity_service,
126
+ );
127
+
128
+ if (entityService) {
129
+ return await entityService.getResolvedEntityData(
130
+ entityType,
131
+ id,
132
+ loggedInUser,
133
+ );
134
+ }
135
+ }
136
+
137
+ @Post('create')
138
+ @HttpCode(200)
139
+ async create(
140
+ @Body() entityData: BaseEntity,
141
+ @Query('entity_type') entityType: string,
142
+ @Req() req: Request & { user: any },
143
+ ) {
144
+ const loggedInUser = req.user.userData;
145
+ const appcode = loggedInUser.appcode;
146
+
147
+ if (!entityType) {
148
+ throw new BadRequestException(
149
+ `Query parameter "entity_type" is required`,
150
+ );
151
+ }
152
+
153
+ const entityMaster = await this.entityMasterService.getEntityData(
154
+ entityType,
155
+ loggedInUser,
156
+ );
157
+
158
+ const entityService =
159
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
160
+ entityMaster.entity_service,
161
+ );
162
+
163
+ if (!entityService) {
164
+ throw new InternalServerErrorException(
165
+ `No service found for entity_type "${entityType}"`,
166
+ );
167
+ }
168
+
169
+ // ✅ Create
170
+ const savedData = await entityService.createEntity(
171
+ entityData,
172
+ loggedInUser as UserData,
173
+ null,
174
+ appcode,
175
+ );
176
+
177
+ // ✅ Run workflow automation (no preUpdateStates for CREATE)
178
+ await this.workflowAutomationEngineService.handleEntityEvent(
179
+ entityType,
180
+ 'CREATE',
181
+ savedData,
182
+ loggedInUser,
183
+ null,
184
+ );
185
+
186
+ return savedData;
187
+ }
188
+
189
+ @Post('update/:id')
190
+ @HttpCode(200)
191
+ async update(
192
+ @Param('id') id: number,
193
+ @Body() entityData: BaseEntity,
194
+ @Query('entity_type') entityType: string,
195
+ @Req() req: Request & { user: any },
196
+ ) {
197
+ const loggedInUser = req.user.userData;
198
+
199
+ if (!entityType) {
200
+ throw new BadRequestException(
201
+ 'Query parameter "entity_type" is required',
202
+ );
203
+ }
204
+
205
+ const entityMaster = await this.entityMasterService.getEntityData(
206
+ entityType,
207
+ loggedInUser,
208
+ );
209
+
210
+ const entityService =
211
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
212
+ entityMaster.entity_service,
213
+ );
214
+
215
+ if (!entityService) {
216
+ throw new InternalServerErrorException(
217
+ `No service found for entity_type "${entityType}"`,
218
+ );
219
+ }
220
+
221
+ // 1️⃣ Get old state
222
+ const existingEntity = await entityService.getEntityData(
223
+ entityType,
224
+ id,
225
+ loggedInUser,
226
+ );
227
+ if (!existingEntity) {
228
+ throw new NotFoundException(`No entity found for id "${id}"`);
229
+ }
230
+
231
+ // 2️⃣ Pre-evaluate criteria
232
+ const workflows = await this.workflowAutomationEngineService[
233
+ 'wfService'
234
+ ].getActiveRules(entityType, 'UPDATE', loggedInUser);
235
+ const preUpdateStates: Record<number, boolean> = {};
236
+ for (const wf of workflows) {
237
+ preUpdateStates[wf.id] = await this.workflowAutomationEngineService[
238
+ 'filterEvaluator'
239
+ ].evaluateCriteria(
240
+ entityType,
241
+ wf.condition_filter_code,
242
+ existingEntity.id,
243
+ loggedInUser,
244
+ );
245
+ }
246
+
247
+ // 3️⃣ Update
248
+ const updatedData = await entityService.updateEntity(
249
+ entityData,
250
+ loggedInUser as UserData,
251
+ );
252
+
253
+ // 4️⃣ Run workflow automation (pass preUpdateStates)
254
+ await this.workflowAutomationEngineService.handleEntityEvent(
255
+ entityType,
256
+ 'UPDATE',
257
+ updatedData,
258
+ loggedInUser,
259
+ preUpdateStates,
260
+ );
261
+
262
+ return updatedData;
263
+ }
264
+
265
+ @Post('delete/:id')
266
+ @HttpCode(200)
267
+ async delete(
268
+ @Param('id') id: number,
269
+ @Query('entity_type') entityType: string,
270
+ @Req() req: Request & { user: any },
271
+ ) {
272
+ const loggedInUser = req.user.userData;
273
+
274
+ if (!entityType) {
275
+ throw new BadRequestException(
276
+ 'Query parameter "entity_type" is required',
277
+ );
278
+ }
279
+
280
+ const entityMaster = await this.entityMasterService.getEntityData(
281
+ entityType,
282
+ loggedInUser,
283
+ );
284
+
285
+ const entityService =
286
+ await this.reflectionHelper.getBean<EntityServiceImpl>(
287
+ entityMaster.entity_service,
288
+ );
289
+
290
+ if (!entityService) {
291
+ throw new InternalServerErrorException(
292
+ `No service found for entity_type "${entityType}"`,
293
+ );
294
+ }
295
+
296
+ const existingEntity = await entityService.getEntityData(
297
+ entityType,
298
+ id,
299
+ loggedInUser,
300
+ );
301
+
302
+ if (!existingEntity) {
303
+ throw new NotFoundException(`No entity found for id "${id}"`);
304
+ }
305
+
306
+ return await entityService.deleteEntity(entityType, id, loggedInUser);
307
+ }
308
+ }