rez_core 4.0.167 → 4.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 (604) hide show
  1. package/.prettierrc +3 -3
  2. package/README.md +99 -99
  3. package/dist/app.module.js +9 -0
  4. package/dist/app.module.js.map +1 -1
  5. package/dist/config/bull.config.d.ts +10 -0
  6. package/dist/config/bull.config.js +66 -0
  7. package/dist/config/bull.config.js.map +1 -0
  8. package/dist/config/config.module.js +2 -2
  9. package/dist/config/config.module.js.map +1 -1
  10. package/dist/config/database.config.d.ts +1 -1
  11. package/dist/config/database.config.js +12 -16
  12. package/dist/config/database.config.js.map +1 -1
  13. package/dist/core.module.d.ts +1 -1
  14. package/dist/core.module.js +7 -7
  15. package/dist/core.module.js.map +1 -1
  16. package/dist/main.js +1 -1
  17. package/dist/main.js.map +1 -1
  18. package/dist/module/auth/guards/role.guard.js +3 -3
  19. package/dist/module/auth/services/auth.service.js +3 -3
  20. package/dist/module/auth/services/auth.service.js.map +1 -1
  21. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  22. package/dist/module/enterprise/repository/school.repository.js +3 -3
  23. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  24. package/dist/module/entity_json/controller/entity_json.controller.d.ts +8 -0
  25. package/dist/module/entity_json/controller/entity_json.controller.js +42 -0
  26. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -0
  27. package/dist/module/entity_json/entity_json.module.d.ts +2 -0
  28. package/dist/module/entity_json/entity_json.module.js +26 -0
  29. package/dist/module/entity_json/entity_json.module.js.map +1 -0
  30. package/dist/module/entity_json/service/entity_json.service.d.ts +7 -0
  31. package/dist/module/entity_json/service/entity_json.service.js +80 -0
  32. package/dist/module/entity_json/service/entity_json.service.js.map +1 -0
  33. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  34. package/dist/module/filter/service/filter-evaluator.service.js +3 -3
  35. package/dist/module/filter/service/filter-evaluator.service.js.map +1 -1
  36. package/dist/module/filter/service/filter.service.d.ts +1 -4
  37. package/dist/module/filter/service/filter.service.js +39 -69
  38. package/dist/module/filter/service/filter.service.js.map +1 -1
  39. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  40. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  41. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  42. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  43. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  44. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  45. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  46. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  47. package/dist/module/integration/examples/usage.example.js +9 -9
  48. package/dist/module/integration/service/integration.service.js +1 -1
  49. package/dist/module/integration/service/wrapper.service.d.ts +3 -1
  50. package/dist/module/integration/service/wrapper.service.js +67 -65
  51. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  52. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +5 -0
  53. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +29 -0
  54. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -0
  55. package/dist/module/linked_attributes/entity/linked_attribute.entity.d.ts +9 -0
  56. package/dist/module/linked_attributes/entity/linked_attribute.entity.js +70 -0
  57. package/dist/module/linked_attributes/entity/linked_attribute.entity.js.map +1 -0
  58. package/dist/module/linked_attributes/linked_attributes.module.d.ts +2 -0
  59. package/dist/module/linked_attributes/linked_attributes.module.js +29 -0
  60. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -0
  61. package/dist/module/linked_attributes/repository/linked_attribute.repository.d.ts +6 -0
  62. package/dist/module/linked_attributes/repository/linked_attribute.repository.js +31 -0
  63. package/dist/module/linked_attributes/repository/linked_attribute.repository.js.map +1 -0
  64. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +5 -0
  65. package/dist/module/linked_attributes/service/linked_attributes.service.js +34 -0
  66. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -0
  67. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  68. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  69. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  70. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  71. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  72. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  73. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  74. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  75. package/dist/module/mapper/service/field-mapper.service.js +7 -7
  76. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  77. package/dist/module/mapper/service/mapper.service.js +4 -4
  78. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  79. package/dist/module/meta/controller/attribute-master.controller.d.ts +4 -1
  80. package/dist/module/meta/controller/attribute-master.controller.js +15 -2
  81. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  82. package/dist/module/meta/entity/app-master.entity.d.ts +2 -2
  83. package/dist/module/meta/entity/app-master.entity.js +4 -4
  84. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  85. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  86. package/dist/module/meta/entity/view-master.entity.js +1 -1
  87. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  88. package/dist/module/meta/entity.module.js +7 -0
  89. package/dist/module/meta/entity.module.js.map +1 -1
  90. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  91. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  92. package/dist/module/meta/repository/entity-attribute-update.repository.d.ts +6 -0
  93. package/dist/module/meta/repository/entity-attribute-update.repository.js +44 -0
  94. package/dist/module/meta/repository/entity-attribute-update.repository.js.map +1 -0
  95. package/dist/module/meta/repository/entity-master.repository.js +2 -2
  96. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  97. package/dist/module/meta/service/attribute-master.service.js +1 -1
  98. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  99. package/dist/module/meta/service/entity-attribute-update.service.d.ts +7 -0
  100. package/dist/module/meta/service/entity-attribute-update.service.js +36 -0
  101. package/dist/module/meta/service/entity-attribute-update.service.js.map +1 -0
  102. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  103. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  104. package/dist/module/meta/service/entity-list.service.js +3 -3
  105. package/dist/module/meta/service/entity-master.service.js +4 -4
  106. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  107. package/dist/module/meta/service/entity-relation.service.js +13 -13
  108. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  109. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  110. package/dist/module/meta/service/media-data.service.js +9 -9
  111. package/dist/module/meta/service/media-data.service.js.map +1 -1
  112. package/dist/module/meta/service/resolver.service.js +19 -19
  113. package/dist/module/meta/service/resolver.service.js.map +1 -1
  114. package/dist/module/module/repository/menu.repository.js +12 -12
  115. package/dist/module/notification/entity/otp.entity.js +1 -1
  116. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  117. package/dist/module/notification/service/notification.service.js +9 -9
  118. package/dist/module/user/controller/login.controller.js +18 -18
  119. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  120. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  121. package/dist/module/user/service/login.service.js +1 -1
  122. package/dist/module/user/service/login.service.js.map +1 -1
  123. package/dist/module/user/service/role.service.js +4 -4
  124. package/dist/module/user/service/user-session.service.js +4 -4
  125. package/dist/module/user/service/user-session.service.js.map +1 -1
  126. package/dist/module/workflow/entity/action-category.entity.d.ts +1 -1
  127. package/dist/module/workflow/entity/action-category.entity.js +1 -1
  128. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  129. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  130. package/dist/module/workflow/entity/action.entity.d.ts +1 -0
  131. package/dist/module/workflow/entity/action.entity.js +5 -1
  132. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  133. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  134. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  135. package/dist/module/workflow/entity/template-attach-mapper.entity.js +1 -1
  136. package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -1
  137. package/dist/module/workflow/repository/action-data.repository.js +5 -4
  138. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  139. package/dist/module/workflow/repository/action.repository.js +21 -21
  140. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  141. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  142. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  143. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  144. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  145. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  146. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  147. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  148. package/dist/module/workflow/repository/stage.repository.js +8 -8
  149. package/dist/module/workflow/repository/task.repository.d.ts +3 -1
  150. package/dist/module/workflow/repository/task.repository.js +10 -5
  151. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  152. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  153. package/dist/module/workflow/service/action.service.js +13 -13
  154. package/dist/module/workflow/service/action.service.js.map +1 -1
  155. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  156. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  157. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  158. package/dist/module/workflow/service/stage-group.service.js +6 -6
  159. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  160. package/dist/module/workflow/service/stage.service.js +4 -4
  161. package/dist/module/workflow/service/stage.service.js.map +1 -1
  162. package/dist/module/workflow/service/task.service.js +68 -54
  163. package/dist/module/workflow/service/task.service.js.map +1 -1
  164. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  165. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  166. package/dist/module/workflow/service/workflow-meta.service.js +53 -51
  167. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  168. package/dist/module/workflow/service/workflow.service.js +5 -5
  169. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  170. package/dist/module/workflow-automation/controller/workflow-automation.controller.d.ts +6 -0
  171. package/dist/module/workflow-automation/controller/workflow-automation.controller.js +16 -0
  172. package/dist/module/workflow-automation/controller/workflow-automation.controller.js.map +1 -1
  173. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.d.ts +1 -1
  174. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js +1 -1
  175. package/dist/module/workflow-automation/entity/workflow-automation.entity.d.ts +2 -0
  176. package/dist/module/workflow-automation/entity/workflow-automation.entity.js +8 -0
  177. package/dist/module/workflow-automation/entity/workflow-automation.entity.js.map +1 -1
  178. package/dist/module/workflow-automation/service/schedule-handler.service.d.ts +16 -0
  179. package/dist/module/workflow-automation/service/schedule-handler.service.js +109 -0
  180. package/dist/module/workflow-automation/service/schedule-handler.service.js.map +1 -0
  181. package/dist/module/workflow-automation/service/workflow-automation-engine.service.d.ts +1 -1
  182. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  183. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  184. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +13 -1
  185. package/dist/module/workflow-automation/service/workflow-automation.service.js +115 -6
  186. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  187. package/dist/module/workflow-automation/workflow-automation.module.js +14 -1
  188. package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
  189. package/dist/module/workflow-schedule/constants/schedule.constants.d.ts +27 -0
  190. package/dist/module/workflow-schedule/constants/schedule.constants.js +31 -0
  191. package/dist/module/workflow-schedule/constants/schedule.constants.js.map +1 -0
  192. package/dist/module/workflow-schedule/controller/workflow-schedule.controller.d.ts +83 -0
  193. package/dist/module/workflow-schedule/controller/workflow-schedule.controller.js +220 -0
  194. package/dist/module/workflow-schedule/controller/workflow-schedule.controller.js.map +1 -0
  195. package/dist/module/workflow-schedule/dto/create-schedule.dto.d.ts +32 -0
  196. package/dist/module/workflow-schedule/dto/create-schedule.dto.js +163 -0
  197. package/dist/module/workflow-schedule/dto/create-schedule.dto.js.map +1 -0
  198. package/dist/module/workflow-schedule/dto/get-execution-logs.dto.d.ts +35 -0
  199. package/dist/module/workflow-schedule/dto/get-execution-logs.dto.js +124 -0
  200. package/dist/module/workflow-schedule/dto/get-execution-logs.dto.js.map +1 -0
  201. package/dist/module/workflow-schedule/dto/update-schedule.dto.d.ts +19 -0
  202. package/dist/module/workflow-schedule/dto/update-schedule.dto.js +106 -0
  203. package/dist/module/workflow-schedule/dto/update-schedule.dto.js.map +1 -0
  204. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.d.ts +30 -0
  205. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js +113 -0
  206. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js.map +1 -0
  207. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.d.ts +34 -0
  208. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js +118 -0
  209. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js.map +1 -0
  210. package/dist/module/workflow-schedule/interfaces/schedule-job-data.interface.d.ts +44 -0
  211. package/dist/module/workflow-schedule/interfaces/schedule-job-data.interface.js +3 -0
  212. package/dist/module/workflow-schedule/interfaces/schedule-job-data.interface.js.map +1 -0
  213. package/dist/module/workflow-schedule/processors/schedule.processor.d.ts +31 -0
  214. package/dist/module/workflow-schedule/processors/schedule.processor.js +409 -0
  215. package/dist/module/workflow-schedule/processors/schedule.processor.js.map +1 -0
  216. package/dist/module/workflow-schedule/service/workflow-schedule.service.d.ts +44 -0
  217. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +434 -0
  218. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -0
  219. package/dist/module/workflow-schedule/workflow-schedule.module.d.ts +2 -0
  220. package/dist/module/workflow-schedule/workflow-schedule.module.js +44 -0
  221. package/dist/module/workflow-schedule/workflow-schedule.module.js.map +1 -0
  222. package/dist/table.config.js +5 -1
  223. package/dist/table.config.js.map +1 -1
  224. package/dist/tsconfig.build.tsbuildinfo +1 -1
  225. package/dist/utils/service/loggingUtil.service.d.ts +9 -2
  226. package/dist/utils/service/loggingUtil.service.js +65 -14
  227. package/dist/utils/service/loggingUtil.service.js.map +1 -1
  228. package/dist/utils/service/reflection-helper.service.js +3 -3
  229. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  230. package/dist/utils/utils.module.js +2 -0
  231. package/dist/utils/utils.module.js.map +1 -1
  232. package/docs/modules/event-driven-integration-design.md +91 -91
  233. package/docs/modules/integration.md +250 -250
  234. package/eslint.config.mjs +34 -34
  235. package/nest-cli.json +14 -14
  236. package/package.json +124 -120
  237. package/src/app.controller.ts +12 -12
  238. package/src/app.module.ts +62 -52
  239. package/src/app.service.ts +8 -8
  240. package/src/config/bull.config.ts +69 -0
  241. package/src/config/config.module.ts +18 -17
  242. package/src/config/database.config.ts +23 -48
  243. package/src/constant/global.constant.ts +67 -67
  244. package/src/core.module.ts +86 -81
  245. package/src/decorators/roles.decorator.ts +7 -7
  246. package/src/dtos/response.dto.ts +6 -6
  247. package/src/dtos/response.ts +5 -5
  248. package/src/index.ts +1 -1
  249. package/src/module/auth/auth.module.ts +49 -49
  250. package/src/module/auth/controller/auth.controller.ts +28 -28
  251. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  252. package/src/module/auth/guards/jwt.guard.ts +22 -22
  253. package/src/module/auth/guards/role.guard.ts +68 -68
  254. package/src/module/auth/services/auth.service.ts +50 -50
  255. package/src/module/auth/services/jwt.service.ts +11 -11
  256. package/src/module/auth/strategies/google.strategy.ts +54 -54
  257. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  258. package/src/module/auth/strategies/local.strategy.ts +13 -13
  259. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  260. package/src/module/dashboard/dashboard.module.ts +21 -21
  261. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  262. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  263. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  264. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  265. package/src/module/dev/dev.module.ts +12 -12
  266. package/src/module/dev/service/dev.service.ts +7 -7
  267. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  268. package/src/module/enterprise/enterprise.module.ts +30 -30
  269. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  270. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  271. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  272. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  273. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  274. package/src/module/enterprise/repository/school.repository.ts +278 -278
  275. package/src/module/enterprise/service/brand.service.ts +5 -5
  276. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  277. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  278. package/src/module/enterprise/service/organization.service.ts +145 -145
  279. package/src/module/entity_json/controller/entity_json.controller.ts +21 -0
  280. package/src/module/entity_json/entity_json.module.ts +13 -0
  281. package/src/module/entity_json/service/entity_json.service.ts +88 -0
  282. package/src/module/filter/controller/filter.controller.ts +84 -84
  283. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  284. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  285. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  286. package/src/module/filter/filter.module.ts +31 -31
  287. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  288. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  289. package/src/module/filter/service/filter.service.ts +1005 -1053
  290. package/src/module/filter/service/saved-filter.service.ts +170 -170
  291. package/src/module/ics/controller/ics.controller.ts +21 -21
  292. package/src/module/ics/dto/ics.dto.ts +55 -55
  293. package/src/module/ics/ics.module.ts +13 -13
  294. package/src/module/ics/service/ics.service.ts +57 -57
  295. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  296. package/src/module/integration/controller/integration.controller.ts +662 -662
  297. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  298. package/src/module/integration/dto/create-config.dto.ts +526 -526
  299. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  300. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  301. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  302. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  303. package/src/module/integration/examples/usage.example.ts +338 -338
  304. package/src/module/integration/factories/base.factory.ts +7 -7
  305. package/src/module/integration/factories/email.factory.ts +49 -49
  306. package/src/module/integration/factories/integration.factory.ts +121 -121
  307. package/src/module/integration/factories/sms.factory.ts +51 -51
  308. package/src/module/integration/factories/telephone.factory.ts +41 -41
  309. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  310. package/src/module/integration/integration.module.ts +110 -110
  311. package/src/module/integration/service/calendar-event.service.ts +118 -118
  312. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  313. package/src/module/integration/service/integration-queue.service.ts +229 -229
  314. package/src/module/integration/service/integration.service.ts +2633 -2633
  315. package/src/module/integration/service/oauth.service.ts +224 -224
  316. package/src/module/integration/service/wrapper.service.ts +700 -494
  317. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  318. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  319. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  320. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  321. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  322. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  323. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  324. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  325. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  326. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  327. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  328. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  329. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  330. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  331. package/src/module/layout/controller/layout.controller.ts +47 -47
  332. package/src/module/layout/entity/header-items.entity.ts +28 -28
  333. package/src/module/layout/entity/header-section.entity.ts +19 -19
  334. package/src/module/layout/layout.module.ts +21 -21
  335. package/src/module/layout/repository/header-items.repository.ts +18 -18
  336. package/src/module/layout/repository/header-section.repository.ts +22 -22
  337. package/src/module/layout/service/header-section.service.ts +25 -25
  338. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  339. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  340. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  341. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  342. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  343. package/src/module/lead/controller/lead.controller.ts +30 -30
  344. package/src/module/lead/lead.module.ts +14 -14
  345. package/src/module/lead/repository/lead.repository.ts +41 -41
  346. package/src/module/lead/service/lead.service.ts +54 -54
  347. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +10 -0
  348. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +48 -0
  349. package/src/module/linked_attributes/linked_attributes.module.ts +16 -0
  350. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -0
  351. package/src/module/linked_attributes/service/linked_attributes.service.ts +22 -0
  352. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  353. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  354. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  355. package/src/module/listmaster/listmaster.module.ts +46 -46
  356. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  357. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  358. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  359. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  360. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  361. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  362. package/src/module/listmaster/service/list-master.service.ts +535 -535
  363. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  364. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  365. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  366. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  367. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  368. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  369. package/src/module/mapper/mapper.module.ts +34 -34
  370. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  371. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  372. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  373. package/src/module/mapper/service/field-mapper.service.ts +271 -266
  374. package/src/module/mapper/service/mapper.service.ts +79 -79
  375. package/src/module/master/controller/master.controller.ts +74 -74
  376. package/src/module/master/service/master.service.ts +483 -483
  377. package/src/module/meta/controller/app-master.controller.ts +38 -38
  378. package/src/module/meta/controller/attribute-master.controller.ts +74 -66
  379. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  380. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  381. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  382. package/src/module/meta/controller/entity.controller.ts +392 -392
  383. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  384. package/src/module/meta/controller/media.controller.ts +107 -107
  385. package/src/module/meta/controller/meta.controller.ts +96 -96
  386. package/src/module/meta/controller/view-master.controller.ts +86 -86
  387. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  388. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  389. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  390. package/src/module/meta/entity/app-master.entity.ts +34 -34
  391. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  392. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  393. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  394. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  395. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  396. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  397. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  398. package/src/module/meta/entity/media-data.entity.ts +32 -32
  399. package/src/module/meta/entity/preference.entity.ts +62 -62
  400. package/src/module/meta/entity/view-master.entity.ts +41 -41
  401. package/src/module/meta/entity.module.ts +166 -158
  402. package/src/module/meta/repository/app-master.repository.ts +20 -20
  403. package/src/module/meta/repository/attribute-master.repository.ts +118 -118
  404. package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -0
  405. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  406. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  407. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  408. package/src/module/meta/repository/media-data.repository.ts +50 -50
  409. package/src/module/meta/repository/preference.repository.ts +20 -20
  410. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  411. package/src/module/meta/repository/view-master.repository.ts +42 -42
  412. package/src/module/meta/service/app-master.service.ts +37 -37
  413. package/src/module/meta/service/attribute-master.service.ts +126 -126
  414. package/src/module/meta/service/common.service.ts +9 -9
  415. package/src/module/meta/service/entity-attribute-update.service.ts +29 -0
  416. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  417. package/src/module/meta/service/entity-list.service.ts +205 -205
  418. package/src/module/meta/service/entity-master.service.ts +169 -169
  419. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  420. package/src/module/meta/service/entity-relation.service.ts +69 -69
  421. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  422. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  423. package/src/module/meta/service/entity-table.service.ts +150 -150
  424. package/src/module/meta/service/entity-validation.service.ts +187 -187
  425. package/src/module/meta/service/entity.service.ts +67 -67
  426. package/src/module/meta/service/field-group.service.ts +103 -103
  427. package/src/module/meta/service/media-data.service.ts +507 -507
  428. package/src/module/meta/service/populate-meta.service.ts +193 -193
  429. package/src/module/meta/service/preference.service.ts +16 -16
  430. package/src/module/meta/service/resolver.service.ts +267 -267
  431. package/src/module/meta/service/section-master.service.ts +104 -104
  432. package/src/module/meta/service/update-form-json.service.ts +22 -22
  433. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  434. package/src/module/meta/service/view-master.service.ts +127 -127
  435. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  436. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  437. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  438. package/src/module/module/controller/menu.controller.ts +15 -15
  439. package/src/module/module/controller/module-access.controller.ts +134 -134
  440. package/src/module/module/entity/menu.entity.ts +43 -43
  441. package/src/module/module/entity/module-access.entity.ts +25 -25
  442. package/src/module/module/entity/module-action.entity.ts +17 -17
  443. package/src/module/module/entity/module.entity.ts +52 -52
  444. package/src/module/module/module.module.ts +42 -42
  445. package/src/module/module/repository/menu.repository.ts +184 -184
  446. package/src/module/module/repository/module-access.repository.ts +344 -344
  447. package/src/module/module/service/menu.service.ts +82 -82
  448. package/src/module/module/service/module-access.service.ts +209 -209
  449. package/src/module/notification/controller/notification.controller.ts +58 -58
  450. package/src/module/notification/controller/otp.controller.ts +117 -117
  451. package/src/module/notification/entity/notification.entity.ts +26 -26
  452. package/src/module/notification/entity/otp.entity.ts +28 -28
  453. package/src/module/notification/firebase-admin.config.ts +22 -22
  454. package/src/module/notification/notification.module.ts +69 -69
  455. package/src/module/notification/repository/otp.repository.ts +27 -27
  456. package/src/module/notification/service/email.service.ts +127 -127
  457. package/src/module/notification/service/notification.service.ts +163 -163
  458. package/src/module/notification/service/otp.service.ts +132 -132
  459. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  460. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  461. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  462. package/src/module/third-party-module/third-party.module.ts +12 -12
  463. package/src/module/user/controller/login.controller.ts +197 -197
  464. package/src/module/user/controller/user.controller.ts +40 -40
  465. package/src/module/user/dto/create-user.dto.ts +62 -62
  466. package/src/module/user/dto/update-user.dto.ts +4 -4
  467. package/src/module/user/entity/role.entity.ts +33 -33
  468. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  469. package/src/module/user/entity/user-session.entity.ts +73 -73
  470. package/src/module/user/entity/user.entity.ts +59 -59
  471. package/src/module/user/repository/role.repository.ts +96 -96
  472. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  473. package/src/module/user/repository/user.repository.ts +50 -50
  474. package/src/module/user/repository/userSession.repository.ts +33 -33
  475. package/src/module/user/service/login.service.ts +304 -304
  476. package/src/module/user/service/role.service.ts +189 -189
  477. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  478. package/src/module/user/service/user-session.service.ts +168 -168
  479. package/src/module/user/service/user.service.ts +365 -365
  480. package/src/module/user/user.module.ts +65 -65
  481. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  482. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  483. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  484. package/src/module/workflow/controller/action.controller.ts +111 -111
  485. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  486. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  487. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  488. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  489. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  490. package/src/module/workflow/controller/stage.controller.ts +50 -50
  491. package/src/module/workflow/controller/task.controller.ts +77 -77
  492. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  493. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  494. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  495. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  496. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  497. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  498. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  499. package/src/module/workflow/entity/action.entity.ts +53 -50
  500. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  501. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  502. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  503. package/src/module/workflow/entity/form.entity.ts +25 -25
  504. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  505. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  506. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  507. package/src/module/workflow/entity/stage.entity.ts +20 -20
  508. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  509. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  510. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  511. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  512. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  513. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  514. package/src/module/workflow/repository/action-data.repository.ts +334 -333
  515. package/src/module/workflow/repository/action.repository.ts +323 -323
  516. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  517. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  518. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  519. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  520. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  521. package/src/module/workflow/repository/stage.repository.ts +172 -172
  522. package/src/module/workflow/repository/task.repository.ts +134 -126
  523. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  524. package/src/module/workflow/service/action-category.service.ts +33 -33
  525. package/src/module/workflow/service/action-data.service.ts +62 -62
  526. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  527. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  528. package/src/module/workflow/service/action.service.ts +279 -279
  529. package/src/module/workflow/service/activity-log.service.ts +107 -107
  530. package/src/module/workflow/service/comm-template.service.ts +180 -180
  531. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  532. package/src/module/workflow/service/form-master.service.ts +35 -35
  533. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  534. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  535. package/src/module/workflow/service/stage-group.service.ts +319 -319
  536. package/src/module/workflow/service/stage.service.ts +199 -199
  537. package/src/module/workflow/service/task.service.ts +569 -560
  538. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  539. package/src/module/workflow/service/workflow-meta.service.ts +654 -640
  540. package/src/module/workflow/service/workflow.service.ts +205 -205
  541. package/src/module/workflow/workflow.module.ts +176 -176
  542. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -21
  543. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  544. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -35
  545. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  546. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  547. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  548. package/src/module/workflow-automation/service/schedule-handler.service.ts +150 -0
  549. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  550. package/src/module/workflow-automation/service/workflow-automation.service.ts +508 -347
  551. package/src/module/workflow-automation/workflow-automation.module.ts +47 -34
  552. package/src/module/workflow-schedule/INSTALLATION.md +244 -0
  553. package/src/module/workflow-schedule/README.md +422 -0
  554. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -0
  555. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -0
  556. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -0
  557. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -0
  558. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -0
  559. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -0
  560. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -0
  561. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -0
  562. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -0
  563. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -0
  564. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -0
  565. package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -0
  566. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -0
  567. package/src/module/workflow-schedule/workflow-schedule.module.ts +43 -0
  568. package/src/resources/dev.properties.yaml +30 -31
  569. package/src/resources/local.properties.yaml +27 -27
  570. package/src/resources/properties.module.ts +12 -12
  571. package/src/resources/properties.yaml.ts +11 -11
  572. package/src/resources/uat.properties.yaml +31 -31
  573. package/src/table.config.ts +130 -126
  574. package/src/utils/dto/excel-data.dto.ts +14 -14
  575. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  576. package/src/utils/service/base64util.service.ts +18 -18
  577. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  578. package/src/utils/service/codeGenerator.service.ts +22 -22
  579. package/src/utils/service/dateUtil.service.ts +17 -17
  580. package/src/utils/service/encryptUtil.service.ts +97 -97
  581. package/src/utils/service/excel-helper.service.ts +72 -72
  582. package/src/utils/service/excelUtil.service.ts +15 -15
  583. package/src/utils/service/file-util.service.ts +11 -11
  584. package/src/utils/service/json-util.service.ts +23 -23
  585. package/src/utils/service/loggingUtil.service.ts +88 -34
  586. package/src/utils/service/reflection-helper.service.ts +62 -62
  587. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  588. package/src/utils/utils.module.ts +27 -25
  589. package/tsconfig.build.json +4 -4
  590. package/tsconfig.json +24 -24
  591. package/.claude/settings.local.json +0 -26
  592. package/.idea/250218_nodejs_core.iml +0 -9
  593. package/.idea/codeStyles/Project.xml +0 -59
  594. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  595. package/.idea/copilot.data.migration.agent.xml +0 -6
  596. package/.idea/copilot.data.migration.ask.xml +0 -6
  597. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  598. package/.idea/copilot.data.migration.edit.xml +0 -6
  599. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  600. package/.idea/misc.xml +0 -6
  601. package/.idea/modules.xml +0 -8
  602. package/.idea/prettier.xml +0 -6
  603. package/.idea/vcs.xml +0 -6
  604. package/server.log +0 -850
@@ -1,4 +1,11 @@
1
+ import { ConfigService } from '@nestjs/config';
1
2
  export declare class LoggingService {
2
- constructor();
3
- log(level: string, serviceName: string, methodName: string, message: string, parameters?: unknown[], debuginfo?: unknown[]): Promise<void>;
3
+ private readonly configService;
4
+ private readonly logger;
5
+ private readonly graylogUrl;
6
+ private readonly environment;
7
+ constructor(configService: ConfigService);
8
+ log(level: string, serviceName: string, methodName: string, message: string, parameters?: unknown[], debugInfo?: unknown[]): Promise<void>;
9
+ private sendToGraylog;
10
+ private mapLogLevel;
4
11
  }
@@ -8,29 +8,80 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
+ var LoggingService_1;
11
12
  Object.defineProperty(exports, "__esModule", { value: true });
12
13
  exports.LoggingService = void 0;
13
14
  const common_1 = require("@nestjs/common");
14
- let LoggingService = class LoggingService {
15
- constructor() { }
16
- async log(level, serviceName, methodName, message, parameters, debuginfo) {
17
- const levelInfo = level.toLowerCase().trim();
18
- const logger = new common_1.Logger(serviceName);
19
- const logMessage = `${methodName} : ${message} : Parameters :${JSON.stringify(parameters)}: Debug Info: ${JSON.stringify(debuginfo)}`;
20
- if (levelInfo === 'debug' || levelInfo === 'info') {
21
- logger.debug(logMessage);
15
+ const config_1 = require("@nestjs/config");
16
+ const axios_1 = require("axios");
17
+ let LoggingService = LoggingService_1 = class LoggingService {
18
+ constructor(configService) {
19
+ this.configService = configService;
20
+ this.logger = new common_1.Logger(LoggingService_1.name);
21
+ this.graylogUrl =
22
+ this.configService.get('GRAYLOG_URL') ||
23
+ 'http://localhost:12201/gelf';
24
+ this.environment = this.configService.get('PROFILE') || 'dev';
25
+ }
26
+ async log(level, serviceName, methodName, message, parameters, debugInfo) {
27
+ const logLevel = level.toLowerCase().trim();
28
+ const logMessage = `${serviceName}.${methodName}: ${message} | Params: ${JSON.stringify(parameters)} | Debug: ${JSON.stringify(debugInfo)}`;
29
+ switch (logLevel) {
30
+ case 'debug':
31
+ case 'info':
32
+ this.logger.debug(logMessage);
33
+ break;
34
+ case 'warn':
35
+ this.logger.warn(logMessage);
36
+ break;
37
+ case 'error':
38
+ this.logger.error(logMessage);
39
+ break;
40
+ default:
41
+ this.logger.log(logMessage);
22
42
  }
23
- else if (levelInfo === 'error') {
24
- logger.error(logMessage);
43
+ this.sendToGraylog({
44
+ version: '1.1',
45
+ host: serviceName || 'nestjs-app',
46
+ short_message: message,
47
+ full_message: logMessage,
48
+ level: this.mapLogLevel(logLevel),
49
+ _service: serviceName,
50
+ _method: methodName,
51
+ _parameters: parameters,
52
+ _debug: debugInfo,
53
+ _environment: this.environment,
54
+ timestamp: Date.now() / 1000,
55
+ });
56
+ }
57
+ async sendToGraylog(payload) {
58
+ try {
59
+ await axios_1.default.post(this.graylogUrl, payload, {
60
+ headers: { 'Content-Type': 'application/json' },
61
+ timeout: 2000,
62
+ });
25
63
  }
26
- else {
27
- logger.log(logMessage);
64
+ catch (err) {
65
+ this.logger.warn(`Graylog send failed: ${err.message}`);
28
66
  }
29
67
  }
68
+ mapLogLevel(level) {
69
+ const mapping = {
70
+ emerg: 0,
71
+ alert: 1,
72
+ crit: 2,
73
+ error: 3,
74
+ warn: 4,
75
+ notice: 5,
76
+ info: 6,
77
+ debug: 7,
78
+ };
79
+ return mapping[level] ?? 6;
80
+ }
30
81
  };
31
82
  exports.LoggingService = LoggingService;
32
- exports.LoggingService = LoggingService = __decorate([
83
+ exports.LoggingService = LoggingService = LoggingService_1 = __decorate([
33
84
  (0, common_1.Injectable)(),
34
- __metadata("design:paramtypes", [])
85
+ __metadata("design:paramtypes", [config_1.ConfigService])
35
86
  ], LoggingService);
36
87
  //# sourceMappingURL=loggingUtil.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"loggingUtil.service.js","sourceRoot":"","sources":["../../../src/utils/service/loggingUtil.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAoD;AAG7C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,gBAAe,CAAC;IAEhB,KAAK,CAAC,GAAG,CACP,KAAa,EACb,WAAmB,EACnB,UAAkB,EAClB,OAAe,EACf,UAAsB,EACtB,SAAqB;QAErB,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,WAAW,CAAC,CAAC;QAGvC,MAAM,UAAU,GAAG,GAAG,UAAU,MAAM,OAAO,kBAAkB,IAAI,CAAC,SAAS,CAC3E,UAAU,CACX,iBAAiB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAE9C,IAAI,SAAS,KAAK,OAAO,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;YAClD,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;aAAM,IAAI,SAAS,KAAK,OAAO,EAAE,CAAC;YACjC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3B,CAAC;aAAM,CAAC;YAEN,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QACzB,CAAC;IAGH,CAAC;CACF,CAAA;AA9BY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;;GACA,cAAc,CA8B1B"}
1
+ {"version":3,"file":"loggingUtil.service.js","sourceRoot":"","sources":["../../../src/utils/service/loggingUtil.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;AAAA,2CAAoD;AACpD,2CAA+C;AAC/C,iCAA0B;AAGnB,IAAM,cAAc,sBAApB,MAAM,cAAc;IAKzB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QAJxC,WAAM,GAAG,IAAI,eAAM,CAAC,gBAAc,CAAC,IAAI,CAAC,CAAC;QAKxD,IAAI,CAAC,UAAU;YACb,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,aAAa,CAAC;gBAC7C,6BAA6B,CAAC;QAChC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAS,SAAS,CAAC,IAAI,KAAK,CAAC;IACxE,CAAC;IAED,KAAK,CAAC,GAAG,CACP,KAAa,EACb,WAAmB,EACnB,UAAkB,EAClB,OAAe,EACf,UAAsB,EACtB,SAAqB;QAErB,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE,CAAC;QAC5C,MAAM,UAAU,GAAG,GAAG,WAAW,IAAI,UAAU,KAAK,OAAO,cAAc,IAAI,CAAC,SAAS,CACrF,UAAU,CACX,aAAa,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,CAAC;QAG1C,QAAQ,QAAQ,EAAE,CAAC;YACjB,KAAK,OAAO,CAAC;YACb,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC7B,MAAM;YACR,KAAK,OAAO;gBACV,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;gBAC9B,MAAM;YACR;gBACE,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAChC,CAAC;QAGD,IAAI,CAAC,aAAa,CAAC;YACjB,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,WAAW,IAAI,YAAY;YACjC,aAAa,EAAE,OAAO;YACtB,YAAY,EAAE,UAAU;YACxB,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YACjC,QAAQ,EAAE,WAAW;YACrB,OAAO,EAAE,UAAU;YACnB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,SAAS;YACjB,YAAY,EAAE,IAAI,CAAC,WAAW;YAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;SAC7B,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,aAAa,CAAC,OAA4B;QACtD,IAAI,CAAC;YACH,MAAM,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,EAAE;gBACzC,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;gBAC/C,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,wBAAwB,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,KAAa;QAE/B,MAAM,OAAO,GAA2B;YACtC,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,CAAC;YACP,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,CAAC;YACP,KAAK,EAAE,CAAC;SACT,CAAC;QACF,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAlFY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;qCAMiC,sBAAa;GAL9C,cAAc,CAkF1B"}
@@ -51,9 +51,9 @@ let ReflectionHelper = class ReflectionHelper {
51
51
  }
52
52
  }
53
53
  async getEntityData(id, tableName) {
54
- const entityList = await this.dataSource.query(`SELECT *
55
- FROM ${tableName}
56
- WHERE id = $1`, [id]);
54
+ const entityList = await this.dataSource.query(`SELECT *
55
+ FROM ${tableName}
56
+ WHERE id = ?`, [id]);
57
57
  return entityList.length > 0 ? entityList[0] : null;
58
58
  }
59
59
  };
@@ -1 +1 @@
1
- {"version":3,"file":"reflection-helper.service.js","sourceRoot":"","sources":["../../../src/utils/service/reflection-helper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyC;AACzC,qCAAiD;AACjD,6CAAqD;AAG9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACU,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;IAEhC,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,cAAc,GAAQ,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9D,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,CAAC,IAAI,CAAC,MAAM,IAAK,IAAI,CAAC,MAAc,CAAC,IAAI,KAAK,UAAU,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,WAAW,UAAU,iCAAiC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CACvB,IAAA,4BAAkB,EAAC,cAAc,CAAC,MAAM,CAAC,EACzC,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,UAAU,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,QAAgB;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAI,QAAe,EAAE;gBACtD,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,2BAA2B,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,SAAiB;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;2DACQ,SAAS;kEACF,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAEtE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;CACF,CAAA;AAvDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGU,gBAAS;QACR,oBAAU;GAHrB,gBAAgB,CAuD5B"}
1
+ {"version":3,"file":"reflection-helper.service.js","sourceRoot":"","sources":["../../../src/utils/service/reflection-helper.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,uCAAyC;AACzC,qCAAiD;AACjD,6CAAqD;AAG9C,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YACU,SAAoB,EACpB,UAAsB;QADtB,cAAS,GAAT,SAAS,CAAW;QACpB,eAAU,GAAV,UAAU,CAAY;IAEhC,CAAC;IAED,cAAc,CAAC,UAAkB;QAC/B,MAAM,cAAc,GAAQ,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAC9D,CAAC,IAAI,EAAE,EAAE,CACP,IAAI,CAAC,IAAI,KAAK,UAAU;YACxB,CAAC,IAAI,CAAC,MAAM,IAAK,IAAI,CAAC,MAAc,CAAC,IAAI,KAAK,UAAU,CAAC,CAC5D,CAAC;QAEF,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,WAAW,UAAU,iCAAiC,CAAC,CAAC;YACtE,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CACvB,IAAA,4BAAkB,EAAC,cAAc,CAAC,MAAM,CAAC,EACzC,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,mBAAmB,UAAU,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC1E,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAO,CAAI,QAAgB;QAC/B,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAI,QAAe,EAAE;gBACtD,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;YAEH,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,2BAA2B,CAAC,CAAC;gBAC5D,OAAO,IAAI,CAAC;YACd,CAAC;YAED,OAAO,QAAQ,CAAC;QAClB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,SAAS,QAAQ,cAAc,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;YAC9D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,EAAU,EAAE,SAAiB;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;2DACQ,SAAS;iEACH,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAErE,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,CAAC;CACF,CAAA;AAvDY,4CAAgB;2BAAhB,gBAAgB;IAD5B,IAAA,mBAAU,GAAE;qCAGU,gBAAS;QACR,oBAAU;GAHrB,gBAAgB,CAuD5B"}
@@ -13,12 +13,14 @@ const reflection_helper_service_1 = require("./service/reflection-helper.service
13
13
  const excelUtil_service_1 = require("./service/excelUtil.service");
14
14
  const clockIDGenUtil_service_1 = require("./service/clockIDGenUtil.service");
15
15
  const wbsCodeGen_service_1 = require("./service/wbsCodeGen.service");
16
+ const config_1 = require("@nestjs/config");
16
17
  let UtilsModule = class UtilsModule {
17
18
  };
18
19
  exports.UtilsModule = UtilsModule;
19
20
  exports.UtilsModule = UtilsModule = __decorate([
20
21
  (0, common_1.Global)(),
21
22
  (0, common_1.Module)({
23
+ imports: [config_1.ConfigModule],
22
24
  providers: [
23
25
  loggingUtil_service_1.LoggingService,
24
26
  reflection_helper_service_1.ReflectionHelper,
@@ -1 +1 @@
1
- {"version":3,"file":"utils.module.js","sourceRoot":"","sources":["../../src/utils/utils.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,uEAA+D;AAC/D,mFAAuE;AACvE,mEAAwD;AACxD,6EAAqE;AACrE,qEAAiE;AAmB1D,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAjBvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,SAAS,EAAE;YACT,oCAAc;YACd,4CAAgB;YAChB,6BAAS;YACT,0CAAiB;YACjB,sCAAiB;SAClB;QACD,OAAO,EAAE;YACP,oCAAc;YACd,4CAAgB;YAChB,6BAAS;YACT,0CAAiB;YACjB,sCAAiB;SAClB;KACF,CAAC;GACW,WAAW,CAAG"}
1
+ {"version":3,"file":"utils.module.js","sourceRoot":"","sources":["../../src/utils/utils.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAgD;AAChD,uEAA+D;AAC/D,mFAAuE;AACvE,mEAAwD;AACxD,6EAAqE;AACrE,qEAAiE;AACjE,2CAA8C;AAoBvC,IAAM,WAAW,GAAjB,MAAM,WAAW;CAAG,CAAA;AAAd,kCAAW;sBAAX,WAAW;IAlBvB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,qBAAY,CAAC;QACvB,SAAS,EAAE;YACT,oCAAc;YACd,4CAAgB;YAChB,6BAAS;YACT,0CAAiB;YACjB,sCAAiB;SAClB;QACD,OAAO,EAAE;YACP,oCAAc;YACd,4CAAgB;YAChB,6BAAS;YACT,0CAAiB;YACjB,sCAAiB;SAClB;KACF,CAAC;GACW,WAAW,CAAG"}
@@ -1,92 +1,92 @@
1
- # Event-Driven Integration Module Design (NestJS)
2
-
3
- ## 1. Goal
4
- Introduce **Event-Driven Architecture (EDA)** into the integration module to:
5
- - Decouple producers (e.g., order service, user service) from message delivery logic.
6
- - Support asynchronous message processing, retries, and multi-level fallback.
7
- - Allow smooth transition from in-memory events to external brokers like Kafka or RabbitMQ.
8
-
9
- ---
10
-
11
- ## 2. Current State
12
- - **Database Tables**:
13
- - `frm_integration_config` (stores provider configuration JSON and level mapping)
14
- - **Factory Pattern**:
15
- - Uses `IntegrationFactory` to select strategies (e.g., Gmail API, Twilio SMS, WhatsApp Cloud).
16
- - **Service Layer**:
17
- - Provides methods for sending messages (generic and type-specific).
18
- - Currently invoked directly by producers.
19
- - **Fallback Hierarchy**:
20
- - Resolution order: user → team → project → department → organization.
21
-
22
- ### Limitation
23
- - Tight coupling between producers and `IntegrationService`.
24
- - Direct synchronous calls, no retry or async pipeline.
25
- - Fallback handled procedurally inside service.
26
-
27
- ---
28
-
29
- ## 3. Event-Driven Proposal
30
-
31
- ### Core Events
32
- - **IntegrationRequestedEvent** → emitted whenever any module requests integration.
33
- - **IntegrationSuccessEvent** → emitted when delivery succeeds.
34
- - **IntegrationFailedEvent** → emitted when delivery fails.
35
- - **FallbackRequestedEvent** → emitted when a level-specific config fails, triggering retry with the next fallback level.
36
-
37
- ### Event Flow
38
- 1. A producer (e.g., order service) emits a `IntegrationRequestedEvent`.
39
- 2. The integration module listens for this event.
40
- 3. Delivery attempt is made using the factory and service layer.
41
- 4. Depending on outcome:
42
- - Success → emit `IntegrationSuccessEvent`.
43
- - Failure → emit `IntegrationFailedEvent`.
44
- 5. If failure is due to invalid or unavailable provider, emit `FallbackRequestedEvent` and retry at the next level in hierarchy.
45
- 6. Outcome events (`success`/`failed`) can be consumed by analytics, logging, monitoring, or retry queues.
46
-
47
- ---
48
-
49
- ## 4. Components
50
-
51
- ### Event Producers
52
- - Any module in the system (order, billing, onboarding, etc.) can raise integration requests without depending on the integration module.
53
-
54
- ### Event Handlers
55
- - Dedicated handlers inside the integration module react to request events, coordinate with the factory and service layer, and trigger outcome events.
56
-
57
- ### Subscribers
58
- - Separate subscribers for success/failure events handle logging, retries, notifications, and analytics.
59
-
60
- ---
61
-
62
- ## 5. Multi-Level Fallback
63
- - Instead of handling fallback inside the service, use chained events.
64
- - When one provider fails, emit a `FallbackRequestedEvent` with the next priority level.
65
- - A fallback handler retries delivery using the new configuration.
66
- - This continues until a provider succeeds or the lowest-level configuration (organization) fails.
67
-
68
- ---
69
-
70
- ## 6. Module Wiring
71
- - Use NestJS `EventEmitterModule` or `@nestjs/cqrs` for in-memory event handling.
72
- - Define event classes and handlers within the integration module.
73
- - Export the integration module to make it available across the application.
74
- - Future enhancement: swap in-memory event emitter with Kafka, RabbitMQ, or Redis for distributed systems.
75
-
76
- ---
77
-
78
- ## 7. Benefits
79
- - **Loose coupling**: Producers only emit events, no dependency on the integration module.
80
- - **Resilience**: Fallback and retries managed via events rather than procedural logic.
81
- - **Scalability**: Easy to extend with new providers or migrate to distributed event brokers.
82
- - **Observability**: Success and failure events provide clear audit trails.
83
- - **Future-proof**: In-memory implementation today, external broker tomorrow without major refactor.
84
-
85
- ---
86
-
87
- ## 8. Next Steps
88
- 1. Define event classes and event bus integration.
89
- 2. Implement core handlers for request, success, failure, and fallback.
90
- 3. Add subscribers for logging and monitoring.
91
- 4. Extend fallback logic into event-driven retry mechanism.
1
+ # Event-Driven Integration Module Design (NestJS)
2
+
3
+ ## 1. Goal
4
+ Introduce **Event-Driven Architecture (EDA)** into the integration module to:
5
+ - Decouple producers (e.g., order service, user service) from message delivery logic.
6
+ - Support asynchronous message processing, retries, and multi-level fallback.
7
+ - Allow smooth transition from in-memory events to external brokers like Kafka or RabbitMQ.
8
+
9
+ ---
10
+
11
+ ## 2. Current State
12
+ - **Database Tables**:
13
+ - `frm_integration_config` (stores provider configuration JSON and level mapping)
14
+ - **Factory Pattern**:
15
+ - Uses `IntegrationFactory` to select strategies (e.g., Gmail API, Twilio SMS, WhatsApp Cloud).
16
+ - **Service Layer**:
17
+ - Provides methods for sending messages (generic and type-specific).
18
+ - Currently invoked directly by producers.
19
+ - **Fallback Hierarchy**:
20
+ - Resolution order: user → team → project → department → organization.
21
+
22
+ ### Limitation
23
+ - Tight coupling between producers and `IntegrationService`.
24
+ - Direct synchronous calls, no retry or async pipeline.
25
+ - Fallback handled procedurally inside service.
26
+
27
+ ---
28
+
29
+ ## 3. Event-Driven Proposal
30
+
31
+ ### Core Events
32
+ - **IntegrationRequestedEvent** → emitted whenever any module requests integration.
33
+ - **IntegrationSuccessEvent** → emitted when delivery succeeds.
34
+ - **IntegrationFailedEvent** → emitted when delivery fails.
35
+ - **FallbackRequestedEvent** → emitted when a level-specific config fails, triggering retry with the next fallback level.
36
+
37
+ ### Event Flow
38
+ 1. A producer (e.g., order service) emits a `IntegrationRequestedEvent`.
39
+ 2. The integration module listens for this event.
40
+ 3. Delivery attempt is made using the factory and service layer.
41
+ 4. Depending on outcome:
42
+ - Success → emit `IntegrationSuccessEvent`.
43
+ - Failure → emit `IntegrationFailedEvent`.
44
+ 5. If failure is due to invalid or unavailable provider, emit `FallbackRequestedEvent` and retry at the next level in hierarchy.
45
+ 6. Outcome events (`success`/`failed`) can be consumed by analytics, logging, monitoring, or retry queues.
46
+
47
+ ---
48
+
49
+ ## 4. Components
50
+
51
+ ### Event Producers
52
+ - Any module in the system (order, billing, onboarding, etc.) can raise integration requests without depending on the integration module.
53
+
54
+ ### Event Handlers
55
+ - Dedicated handlers inside the integration module react to request events, coordinate with the factory and service layer, and trigger outcome events.
56
+
57
+ ### Subscribers
58
+ - Separate subscribers for success/failure events handle logging, retries, notifications, and analytics.
59
+
60
+ ---
61
+
62
+ ## 5. Multi-Level Fallback
63
+ - Instead of handling fallback inside the service, use chained events.
64
+ - When one provider fails, emit a `FallbackRequestedEvent` with the next priority level.
65
+ - A fallback handler retries delivery using the new configuration.
66
+ - This continues until a provider succeeds or the lowest-level configuration (organization) fails.
67
+
68
+ ---
69
+
70
+ ## 6. Module Wiring
71
+ - Use NestJS `EventEmitterModule` or `@nestjs/cqrs` for in-memory event handling.
72
+ - Define event classes and handlers within the integration module.
73
+ - Export the integration module to make it available across the application.
74
+ - Future enhancement: swap in-memory event emitter with Kafka, RabbitMQ, or Redis for distributed systems.
75
+
76
+ ---
77
+
78
+ ## 7. Benefits
79
+ - **Loose coupling**: Producers only emit events, no dependency on the integration module.
80
+ - **Resilience**: Fallback and retries managed via events rather than procedural logic.
81
+ - **Scalability**: Easy to extend with new providers or migrate to distributed event brokers.
82
+ - **Observability**: Success and failure events provide clear audit trails.
83
+ - **Future-proof**: In-memory implementation today, external broker tomorrow without major refactor.
84
+
85
+ ---
86
+
87
+ ## 8. Next Steps
88
+ 1. Define event classes and event bus integration.
89
+ 2. Implement core handlers for request, success, failure, and fallback.
90
+ 3. Add subscribers for logging and monitoring.
91
+ 4. Extend fallback logic into event-driven retry mechanism.
92
92
  5. Plan for integration with Kafka/RabbitMQ for production scalability.