rez_core 4.0.145 → 4.0.146

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 (480) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +8 -11
  3. package/.idea/codeStyles/Project.xml +58 -58
  4. package/.idea/codeStyles/codeStyleConfig.xml +4 -4
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +1 -1
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +7 -7
  12. package/.idea/prettier.xml +5 -5
  13. package/.idea/vcs.xml +5 -5
  14. package/.prettierrc +3 -3
  15. package/README.md +99 -99
  16. package/dist/config/config.module.js +2 -2
  17. package/dist/config/config.module.js.map +1 -1
  18. package/dist/config/database.config.d.ts +1 -1
  19. package/dist/config/database.config.js +15 -12
  20. package/dist/config/database.config.js.map +1 -1
  21. package/dist/module/auth/guards/role.guard.js +3 -3
  22. package/dist/module/auth/services/auth.service.js +3 -3
  23. package/dist/module/auth/services/auth.service.js.map +1 -1
  24. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  25. package/dist/module/enterprise/repository/school.repository.js +3 -3
  26. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  27. package/dist/module/filter/repository/saved-filter.repository.js +4 -4
  28. package/dist/module/filter/service/filter-evaluator.service.js +3 -3
  29. package/dist/module/filter/service/filter-evaluator.service.js.map +1 -1
  30. package/dist/module/filter/service/filter.service.js +23 -23
  31. package/dist/module/filter/service/filter.service.js.map +1 -1
  32. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  33. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  34. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  35. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  36. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  37. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  38. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  39. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  40. package/dist/module/integration/examples/usage.example.js +9 -9
  41. package/dist/module/integration/service/integration.service.js +1 -1
  42. package/dist/module/integration/service/wrapper.service.d.ts +1 -3
  43. package/dist/module/integration/service/wrapper.service.js +65 -67
  44. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  45. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  46. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  47. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  48. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  49. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  50. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  51. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  52. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  53. package/dist/module/mapper/service/field-mapper.service.js +7 -7
  54. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  55. package/dist/module/mapper/service/mapper.service.js +4 -4
  56. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  57. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  58. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  59. package/dist/module/meta/entity/view-master.entity.js +1 -1
  60. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  61. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  62. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  63. package/dist/module/meta/repository/entity-master.repository.js +1 -1
  64. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  65. package/dist/module/meta/service/attribute-master.service.js +1 -1
  66. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  67. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  68. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  69. package/dist/module/meta/service/entity-list.service.js +3 -3
  70. package/dist/module/meta/service/entity-master.service.js +4 -4
  71. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  72. package/dist/module/meta/service/entity-relation.service.js +13 -13
  73. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  74. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  75. package/dist/module/meta/service/media-data.service.js +9 -9
  76. package/dist/module/meta/service/media-data.service.js.map +1 -1
  77. package/dist/module/meta/service/resolver.service.js +19 -19
  78. package/dist/module/meta/service/resolver.service.js.map +1 -1
  79. package/dist/module/module/repository/menu.repository.js +12 -12
  80. package/dist/module/notification/entity/otp.entity.js +1 -1
  81. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  82. package/dist/module/notification/service/notification.service.js +9 -9
  83. package/dist/module/user/controller/login.controller.js +18 -18
  84. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  85. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  86. package/dist/module/user/service/login.service.js +1 -1
  87. package/dist/module/user/service/login.service.js.map +1 -1
  88. package/dist/module/user/service/role.service.js +4 -4
  89. package/dist/module/user/service/user-session.service.js +4 -4
  90. package/dist/module/user/service/user-session.service.js.map +1 -1
  91. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  92. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  93. package/dist/module/workflow/entity/action.entity.js +1 -1
  94. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  95. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  96. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  97. package/dist/module/workflow/repository/action-data.repository.js +4 -4
  98. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  99. package/dist/module/workflow/repository/action.repository.js +21 -21
  100. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  101. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  102. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  103. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  104. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  105. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  106. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  107. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  108. package/dist/module/workflow/repository/stage.repository.js +8 -8
  109. package/dist/module/workflow/repository/task.repository.d.ts +1 -3
  110. package/dist/module/workflow/repository/task.repository.js +3 -8
  111. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  112. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  113. package/dist/module/workflow/service/action.service.js +13 -13
  114. package/dist/module/workflow/service/action.service.js.map +1 -1
  115. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  116. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  117. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  118. package/dist/module/workflow/service/stage-group.service.js +6 -6
  119. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  120. package/dist/module/workflow/service/stage.service.js +4 -4
  121. package/dist/module/workflow/service/stage.service.js.map +1 -1
  122. package/dist/module/workflow/service/task.service.js +44 -39
  123. package/dist/module/workflow/service/task.service.js.map +1 -1
  124. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  125. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  126. package/dist/module/workflow/service/workflow-meta.service.js +51 -53
  127. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  128. package/dist/module/workflow/service/workflow.service.js +5 -5
  129. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  130. package/dist/module/workflow-automation/controller/workflow-automation.controller.d.ts +0 -6
  131. package/dist/module/workflow-automation/controller/workflow-automation.controller.js +0 -16
  132. package/dist/module/workflow-automation/controller/workflow-automation.controller.js.map +1 -1
  133. package/dist/module/workflow-automation/entity/workflow-automation.entity.d.ts +0 -1
  134. package/dist/module/workflow-automation/entity/workflow-automation.entity.js +0 -4
  135. package/dist/module/workflow-automation/entity/workflow-automation.entity.js.map +1 -1
  136. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  137. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  138. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +0 -5
  139. package/dist/module/workflow-automation/service/workflow-automation.service.js +0 -45
  140. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  141. package/dist/tsconfig.build.tsbuildinfo +1 -1
  142. package/dist/utils/service/loggingUtil.service.d.ts +2 -9
  143. package/dist/utils/service/loggingUtil.service.js +14 -65
  144. package/dist/utils/service/loggingUtil.service.js.map +1 -1
  145. package/dist/utils/service/reflection-helper.service.js +3 -3
  146. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  147. package/dist/utils/utils.module.js +0 -2
  148. package/dist/utils/utils.module.js.map +1 -1
  149. package/docs/modules/event-driven-integration-design.md +91 -91
  150. package/docs/modules/integration.md +250 -250
  151. package/eslint.config.mjs +34 -34
  152. package/nest-cli.json +14 -14
  153. package/package.json +120 -119
  154. package/server.log +850 -0
  155. package/src/app.controller.ts +12 -12
  156. package/src/app.module.ts +52 -52
  157. package/src/app.service.ts +8 -8
  158. package/src/config/config.module.ts +17 -18
  159. package/src/config/database.config.ts +47 -23
  160. package/src/constant/global.constant.ts +67 -67
  161. package/src/core.module.ts +81 -81
  162. package/src/decorators/roles.decorator.ts +7 -7
  163. package/src/dtos/response.dto.ts +6 -6
  164. package/src/dtos/response.ts +5 -5
  165. package/src/index.ts +1 -1
  166. package/src/module/auth/auth.module.ts +49 -49
  167. package/src/module/auth/controller/auth.controller.ts +28 -28
  168. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  169. package/src/module/auth/guards/jwt.guard.ts +22 -22
  170. package/src/module/auth/guards/role.guard.ts +68 -68
  171. package/src/module/auth/services/auth.service.ts +50 -50
  172. package/src/module/auth/services/jwt.service.ts +11 -11
  173. package/src/module/auth/strategies/google.strategy.ts +54 -54
  174. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  175. package/src/module/auth/strategies/local.strategy.ts +13 -13
  176. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  177. package/src/module/dashboard/dashboard.module.ts +21 -21
  178. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  179. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  180. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  181. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  182. package/src/module/dev/dev.module.ts +12 -12
  183. package/src/module/dev/service/dev.service.ts +7 -7
  184. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  185. package/src/module/enterprise/enterprise.module.ts +30 -30
  186. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  187. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  188. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  189. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  190. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  191. package/src/module/enterprise/repository/school.repository.ts +278 -278
  192. package/src/module/enterprise/service/brand.service.ts +5 -5
  193. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  194. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  195. package/src/module/enterprise/service/organization.service.ts +145 -145
  196. package/src/module/filter/controller/filter.controller.ts +84 -84
  197. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  198. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  199. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  200. package/src/module/filter/filter.module.ts +31 -31
  201. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  202. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  203. package/src/module/filter/service/filter.service.ts +1005 -1005
  204. package/src/module/filter/service/saved-filter.service.ts +170 -170
  205. package/src/module/ics/controller/ics.controller.ts +21 -21
  206. package/src/module/ics/dto/ics.dto.ts +55 -55
  207. package/src/module/ics/ics.module.ts +13 -13
  208. package/src/module/ics/service/ics.service.ts +57 -57
  209. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  210. package/src/module/integration/controller/integration.controller.ts +662 -662
  211. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  212. package/src/module/integration/dto/create-config.dto.ts +526 -526
  213. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  214. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  215. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  216. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  217. package/src/module/integration/examples/usage.example.ts +338 -338
  218. package/src/module/integration/factories/base.factory.ts +7 -7
  219. package/src/module/integration/factories/email.factory.ts +49 -49
  220. package/src/module/integration/factories/integration.factory.ts +121 -121
  221. package/src/module/integration/factories/sms.factory.ts +51 -51
  222. package/src/module/integration/factories/telephone.factory.ts +41 -41
  223. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  224. package/src/module/integration/integration.module.ts +110 -110
  225. package/src/module/integration/service/calendar-event.service.ts +118 -118
  226. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  227. package/src/module/integration/service/integration-queue.service.ts +229 -229
  228. package/src/module/integration/service/integration.service.ts +2633 -2633
  229. package/src/module/integration/service/oauth.service.ts +224 -224
  230. package/src/module/integration/service/wrapper.service.ts +494 -700
  231. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  232. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  233. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  234. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  235. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  236. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  237. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  238. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  239. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  240. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  241. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  242. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  243. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  244. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  245. package/src/module/layout/controller/layout.controller.ts +47 -47
  246. package/src/module/layout/entity/header-items.entity.ts +28 -28
  247. package/src/module/layout/entity/header-section.entity.ts +19 -19
  248. package/src/module/layout/layout.module.ts +21 -21
  249. package/src/module/layout/repository/header-items.repository.ts +18 -18
  250. package/src/module/layout/repository/header-section.repository.ts +22 -22
  251. package/src/module/layout/service/header-section.service.ts +25 -25
  252. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  253. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  254. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  255. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  256. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  257. package/src/module/lead/controller/lead.controller.ts +30 -30
  258. package/src/module/lead/lead.module.ts +14 -14
  259. package/src/module/lead/repository/lead.repository.ts +41 -41
  260. package/src/module/lead/service/lead.service.ts +54 -54
  261. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  262. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  263. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  264. package/src/module/listmaster/listmaster.module.ts +46 -46
  265. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  266. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  267. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  268. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  269. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  270. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  271. package/src/module/listmaster/service/list-master.service.ts +535 -535
  272. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  273. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  274. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  275. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  276. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  277. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  278. package/src/module/mapper/mapper.module.ts +34 -34
  279. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  280. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  281. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  282. package/src/module/mapper/service/field-mapper.service.ts +266 -271
  283. package/src/module/mapper/service/mapper.service.ts +79 -79
  284. package/src/module/master/controller/master.controller.ts +74 -74
  285. package/src/module/master/service/master.service.ts +483 -483
  286. package/src/module/meta/controller/app-master.controller.ts +38 -38
  287. package/src/module/meta/controller/attribute-master.controller.ts +66 -66
  288. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  289. package/src/module/meta/controller/entity-master.controller.ts +28 -28
  290. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  291. package/src/module/meta/controller/entity.controller.ts +392 -392
  292. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  293. package/src/module/meta/controller/media.controller.ts +107 -107
  294. package/src/module/meta/controller/meta.controller.ts +96 -96
  295. package/src/module/meta/controller/view-master.controller.ts +86 -86
  296. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  297. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  298. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  299. package/src/module/meta/entity/app-master.entity.ts +34 -34
  300. package/src/module/meta/entity/attribute-master.entity.ts +89 -89
  301. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  302. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  303. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  304. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  305. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  306. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  307. package/src/module/meta/entity/media-data.entity.ts +32 -32
  308. package/src/module/meta/entity/preference.entity.ts +62 -62
  309. package/src/module/meta/entity/view-master.entity.ts +41 -41
  310. package/src/module/meta/entity.module.ts +158 -158
  311. package/src/module/meta/repository/app-master.repository.ts +20 -20
  312. package/src/module/meta/repository/attribute-master.repository.ts +118 -118
  313. package/src/module/meta/repository/entity-master.repository.ts +69 -69
  314. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  315. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  316. package/src/module/meta/repository/media-data.repository.ts +50 -50
  317. package/src/module/meta/repository/preference.repository.ts +20 -20
  318. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  319. package/src/module/meta/repository/view-master.repository.ts +42 -42
  320. package/src/module/meta/service/app-master.service.ts +37 -37
  321. package/src/module/meta/service/attribute-master.service.ts +126 -126
  322. package/src/module/meta/service/common.service.ts +9 -9
  323. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  324. package/src/module/meta/service/entity-list.service.ts +205 -205
  325. package/src/module/meta/service/entity-master.service.ts +169 -169
  326. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  327. package/src/module/meta/service/entity-relation.service.ts +69 -69
  328. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  329. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  330. package/src/module/meta/service/entity-table.service.ts +150 -150
  331. package/src/module/meta/service/entity-validation.service.ts +187 -187
  332. package/src/module/meta/service/entity.service.ts +67 -67
  333. package/src/module/meta/service/field-group.service.ts +103 -103
  334. package/src/module/meta/service/media-data.service.ts +507 -507
  335. package/src/module/meta/service/populate-meta.service.ts +193 -193
  336. package/src/module/meta/service/preference.service.ts +16 -16
  337. package/src/module/meta/service/resolver.service.ts +267 -267
  338. package/src/module/meta/service/section-master.service.ts +104 -104
  339. package/src/module/meta/service/update-form-json.service.ts +22 -22
  340. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  341. package/src/module/meta/service/view-master.service.ts +127 -127
  342. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  343. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  344. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  345. package/src/module/module/controller/menu.controller.ts +15 -15
  346. package/src/module/module/controller/module-access.controller.ts +134 -134
  347. package/src/module/module/entity/menu.entity.ts +43 -43
  348. package/src/module/module/entity/module-access.entity.ts +25 -25
  349. package/src/module/module/entity/module-action.entity.ts +17 -17
  350. package/src/module/module/entity/module.entity.ts +52 -52
  351. package/src/module/module/module.module.ts +42 -42
  352. package/src/module/module/repository/menu.repository.ts +184 -184
  353. package/src/module/module/repository/module-access.repository.ts +344 -344
  354. package/src/module/module/service/menu.service.ts +82 -82
  355. package/src/module/module/service/module-access.service.ts +209 -209
  356. package/src/module/notification/controller/notification.controller.ts +58 -58
  357. package/src/module/notification/controller/otp.controller.ts +117 -117
  358. package/src/module/notification/entity/notification.entity.ts +26 -26
  359. package/src/module/notification/entity/otp.entity.ts +28 -28
  360. package/src/module/notification/firebase-admin.config.ts +22 -22
  361. package/src/module/notification/notification.module.ts +69 -69
  362. package/src/module/notification/repository/otp.repository.ts +27 -27
  363. package/src/module/notification/service/email.service.ts +127 -127
  364. package/src/module/notification/service/notification.service.ts +163 -163
  365. package/src/module/notification/service/otp.service.ts +132 -132
  366. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  367. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  368. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  369. package/src/module/third-party-module/third-party.module.ts +12 -12
  370. package/src/module/user/controller/login.controller.ts +197 -197
  371. package/src/module/user/controller/user.controller.ts +40 -40
  372. package/src/module/user/dto/create-user.dto.ts +62 -62
  373. package/src/module/user/dto/update-user.dto.ts +4 -4
  374. package/src/module/user/entity/role.entity.ts +33 -33
  375. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  376. package/src/module/user/entity/user-session.entity.ts +73 -73
  377. package/src/module/user/entity/user.entity.ts +59 -59
  378. package/src/module/user/repository/role.repository.ts +96 -96
  379. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  380. package/src/module/user/repository/user.repository.ts +50 -50
  381. package/src/module/user/repository/userSession.repository.ts +33 -33
  382. package/src/module/user/service/login.service.ts +304 -304
  383. package/src/module/user/service/role.service.ts +189 -189
  384. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  385. package/src/module/user/service/user-session.service.ts +168 -168
  386. package/src/module/user/service/user.service.ts +365 -365
  387. package/src/module/user/user.module.ts +65 -65
  388. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  389. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  390. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  391. package/src/module/workflow/controller/action.controller.ts +111 -111
  392. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  393. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  394. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  395. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  396. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  397. package/src/module/workflow/controller/stage.controller.ts +50 -50
  398. package/src/module/workflow/controller/task.controller.ts +77 -77
  399. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  400. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  401. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  402. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  403. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  404. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  405. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  406. package/src/module/workflow/entity/action.entity.ts +50 -50
  407. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  408. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  409. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  410. package/src/module/workflow/entity/form.entity.ts +25 -25
  411. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  412. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  413. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  414. package/src/module/workflow/entity/stage.entity.ts +20 -20
  415. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  416. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  417. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  418. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  419. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  420. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  421. package/src/module/workflow/repository/action-data.repository.ts +333 -333
  422. package/src/module/workflow/repository/action.repository.ts +323 -323
  423. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  424. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  425. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  426. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  427. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  428. package/src/module/workflow/repository/stage.repository.ts +172 -172
  429. package/src/module/workflow/repository/task.repository.ts +127 -134
  430. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  431. package/src/module/workflow/service/action-category.service.ts +33 -33
  432. package/src/module/workflow/service/action-data.service.ts +62 -62
  433. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  434. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  435. package/src/module/workflow/service/action.service.ts +279 -279
  436. package/src/module/workflow/service/activity-log.service.ts +107 -107
  437. package/src/module/workflow/service/comm-template.service.ts +180 -180
  438. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  439. package/src/module/workflow/service/form-master.service.ts +35 -35
  440. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  441. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  442. package/src/module/workflow/service/stage-group.service.ts +319 -319
  443. package/src/module/workflow/service/stage.service.ts +199 -199
  444. package/src/module/workflow/service/task.service.ts +560 -547
  445. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  446. package/src/module/workflow/service/workflow-meta.service.ts +640 -654
  447. package/src/module/workflow/service/workflow.service.ts +205 -205
  448. package/src/module/workflow/workflow.module.ts +176 -176
  449. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +21 -43
  450. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  451. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -38
  452. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  453. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  454. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  455. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  456. package/src/module/workflow-automation/service/workflow-automation.service.ts +347 -421
  457. package/src/module/workflow-automation/workflow-automation.module.ts +34 -34
  458. package/src/resources/dev.properties.yaml +31 -30
  459. package/src/resources/local.properties.yaml +27 -27
  460. package/src/resources/properties.module.ts +12 -12
  461. package/src/resources/properties.yaml.ts +11 -11
  462. package/src/resources/uat.properties.yaml +31 -31
  463. package/src/table.config.ts +126 -126
  464. package/src/utils/dto/excel-data.dto.ts +14 -14
  465. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  466. package/src/utils/service/base64util.service.ts +18 -18
  467. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  468. package/src/utils/service/codeGenerator.service.ts +22 -22
  469. package/src/utils/service/dateUtil.service.ts +17 -17
  470. package/src/utils/service/encryptUtil.service.ts +97 -97
  471. package/src/utils/service/excel-helper.service.ts +72 -72
  472. package/src/utils/service/excelUtil.service.ts +15 -15
  473. package/src/utils/service/file-util.service.ts +11 -11
  474. package/src/utils/service/json-util.service.ts +23 -23
  475. package/src/utils/service/loggingUtil.service.ts +34 -88
  476. package/src/utils/service/reflection-helper.service.ts +62 -62
  477. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  478. package/src/utils/utils.module.ts +25 -27
  479. package/tsconfig.build.json +4 -4
  480. package/tsconfig.json +24 -24
@@ -1,338 +1,338 @@
1
- /**
2
- * Communication Hub Usage Examples
3
- *
4
- * This file demonstrates how to use the hierarchical communication system.
5
- */
6
-
7
- import { IntegrationService } from '../service/integration.service';
8
-
9
- export class CommunicationUsageExamples {
10
- constructor(private readonly communicationService: IntegrationService) {}
11
-
12
- /**
13
- * Example 1: Send an email using Gmail API
14
- */
15
- async sendEmailViaGmailApi() {
16
- // First, create a configuration for Gmail API
17
- const emailConfig = {
18
- clientId: 'your-gmail-client-id',
19
- clientSecret: 'your-gmail-client-secret',
20
- refreshToken: 'your-refresh-token',
21
- };
22
-
23
- const hub = await this.communicationService.createIntegrationConfig(
24
- 1, // levelId
25
- 'organization', // levelType
26
- 'MY_APP_001', // app_code
27
- 'EMAIL', // integration_type
28
- 'gmail', // integration_provider
29
- 1, // integration_source_id
30
- emailConfig,
31
- );
32
-
33
- console.log('Created email config:', hub);
34
-
35
- // Send a message
36
- const result = await this.communicationService.sendMessage({
37
- levelId: 1,
38
- levelType: 'organization',
39
- app_code: 'MY_APP_001',
40
- to: 'recipient@example.com',
41
- message: 'Hello from Gmail API!',
42
- mode: 'EMAIL',
43
- });
44
-
45
- console.log('Email sent:', result);
46
- }
47
-
48
- /**
49
- * Example 2: Send Email using Outlook API
50
- */
51
- async sendEmailViaOutlookApi() {
52
- const outlookConfig = {
53
- clientId: 'your-outlook-client-id',
54
- clientSecret: 'your-outlook-client-secret',
55
- tenantId: 'your-tenant-id',
56
- email: 'user@outlook.com',
57
- };
58
-
59
- await this.communicationService.createIntegrationConfig(
60
- 1,
61
- 'organization',
62
- 'MY_APP_001',
63
- 'EMAIL',
64
- 'outlook',
65
- 2,
66
- outlookConfig,
67
- );
68
-
69
- const result = await this.communicationService.sendMessage({
70
- levelId: 1,
71
- levelType: 'organization',
72
- app_code: 'MY_APP_001',
73
- to: 'recipient@example.com',
74
- message: 'Hello from Outlook API!',
75
- mode: 'EMAIL',
76
- });
77
-
78
- console.log('Email sent:', result);
79
- }
80
-
81
- /**
82
- * Example 3: Send WhatsApp message
83
- */
84
- async sendWhatsAppMessage() {
85
- const whatsappConfig = {
86
- accessToken: 'your-whatsapp-access-token',
87
- phoneNumberId: 'your-phone-number-id',
88
- businessAccountId: 'your-business-account-id',
89
- };
90
-
91
- await this.communicationService.createIntegrationConfig(
92
- 1,
93
- 'organization',
94
- 'MY_APP_001',
95
- 'WA',
96
- 'whatsapp',
97
- 3,
98
- whatsappConfig,
99
- );
100
-
101
- const result = await this.communicationService.sendMessage({
102
- levelId: 1,
103
- levelType: 'organization',
104
- app_code: 'MY_APP_001',
105
- to: '+9876543210',
106
- message: 'Hello from WhatsApp!',
107
- mode: 'WA',
108
- });
109
-
110
- console.log('WhatsApp sent:', result);
111
- }
112
-
113
- /**
114
- * Example 4: Make a voice call using Ozonetel
115
- */
116
- async makeVoiceCall() {
117
- const voiceConfig = {
118
- apiKey: 'your-ozonetel-api-key',
119
- callerId: '+1234567890',
120
- voiceUrl: 'https://your-voice-script-url.com',
121
- };
122
-
123
- await this.communicationService.createIntegrationConfig(
124
- 1,
125
- 'organization',
126
- 'MY_APP_001',
127
- 'TELEPHONE',
128
- 'ozonetel',
129
- 4,
130
- voiceConfig,
131
- );
132
-
133
- const result = await this.communicationService.sendMessage({
134
- levelId: 1,
135
- levelType: 'organization',
136
- app_code: 'MY_APP_001',
137
- to: '+9876543210',
138
- message: 'Voice message content',
139
- mode: 'TELEPHONE',
140
- });
141
-
142
- console.log('Voice call initiated:', result);
143
- }
144
-
145
- /**
146
- * Example 5: Get all supported combinations
147
- */
148
- getSupportedCombinations() {
149
- const combinations = this.communicationService.getSupportedCombinations();
150
- console.log('Supported combinations:', combinations);
151
-
152
- // Output will be:
153
- // [
154
- // { mode: 'EMAIL', service: 'API', provider: 'gmail' },
155
- // { mode: 'EMAIL', service: 'SMTP', provider: 'gmail' },
156
- // { mode: 'EMAIL', service: 'API', provider: 'outlook' },
157
- // { mode: 'EMAIL', service: 'API', provider: 'sendgrid' },
158
- // { mode: 'WA', service: 'API', provider: 'whatsapp' },
159
- // { mode: 'TELEPHONE', service: 'THIRD_PARTY', provider: 'ozonetel' },
160
- // { mode: 'TELEPHONE', service: 'THIRD_PARTY', provider: 'tubelight' }
161
- // ]
162
- }
163
-
164
- /**
165
- * Example 6: Send Gmail email with attachments
166
- */
167
- async sendGmailWithAttachments() {
168
- const result = await this.communicationService.sendGenericMessage({
169
- levelId: 1,
170
- levelType: 'organization',
171
- app_code: 'MY_APP_001',
172
- to: 'recipient@example.com',
173
- subject: 'Email with Attachments',
174
- message: 'Please find the attached documents.',
175
- type: 'EMAIL',
176
- attachments: [
177
- {
178
- filename: 'document.pdf',
179
- content: 'base64-encoded-content-here',
180
- contentType: 'application/pdf',
181
- },
182
- {
183
- filename: 'image.jpg',
184
- path: '/path/to/local/image.jpg',
185
- contentType: 'image/jpeg',
186
- },
187
- ],
188
- });
189
-
190
- console.log('Gmail with attachments sent:', result);
191
- }
192
-
193
- /**
194
- * Example 7: Send Gmail email using HTML template
195
- */
196
- async sendGmailWithTemplate() {
197
- const htmlTemplate = `
198
- <html>
199
- <body>
200
- <h2>Welcome {{userName}}!</h2>
201
- <p>Thank you for joining our platform.</p>
202
- <p>Your account ID is: {{accountId}}</p>
203
- <a href="{{verificationLink}}">Verify your email</a>
204
- </body>
205
- </html>
206
- `;
207
-
208
- const result = await this.communicationService.sendGenericMessage({
209
- levelId: 1,
210
- levelType: 'organization',
211
- app_code: 'MY_APP_001',
212
- to: 'recipient@example.com',
213
- subject: 'Welcome to Our Platform',
214
- message: 'Welcome to Our Platform',
215
- html: htmlTemplate,
216
- type: 'EMAIL',
217
- variables: {
218
- userName: 'John Doe',
219
- accountId: 'ACC_12345',
220
- verificationLink: 'https://example.com/verify/token123',
221
- },
222
- });
223
-
224
- console.log('Gmail template email sent:', result);
225
- }
226
-
227
- /**
228
- * Example 8: Send SendGrid email with attachments
229
- */
230
- async sendSendGridWithAttachments() {
231
- // First create SendGrid config
232
- const sendGridConfig = {
233
- apiKey: 'your-sendgrid-api-key',
234
- fromEmail: 'noreply@yourdomain.com',
235
- fromName: 'Your Company',
236
- };
237
-
238
- await this.communicationService.createIntegrationConfig(
239
- 1,
240
- 'organization',
241
- 'MY_APP_001',
242
- 'EMAIL',
243
- 'sendgrid',
244
- 5,
245
- sendGridConfig,
246
- );
247
-
248
- const result = await this.communicationService.sendGenericMessage({
249
- levelId: 1,
250
- levelType: 'organization',
251
- app_code: 'MY_APP_001',
252
- to: 'recipient@example.com',
253
- subject: 'Invoice and Receipt',
254
- message: 'Please find your invoice and receipt attached.',
255
- type: 'EMAIL',
256
- attachments: [
257
- {
258
- filename: 'invoice.pdf',
259
- content: 'base64-encoded-invoice-content',
260
- contentType: 'application/pdf',
261
- disposition: 'attachment',
262
- },
263
- {
264
- filename: 'receipt.pdf',
265
- content: 'base64-encoded-receipt-content',
266
- contentType: 'application/pdf',
267
- disposition: 'attachment',
268
- },
269
- ],
270
- });
271
-
272
- console.log('SendGrid with attachments sent:', result);
273
- }
274
-
275
- /**
276
- * Example 9: Send SendGrid email using dynamic template
277
- */
278
- async sendSendGridWithDynamicTemplate() {
279
- const result = await this.communicationService.sendGenericMessage({
280
- levelId: 1,
281
- levelType: 'organization',
282
- app_code: 'MY_APP_001',
283
- to: 'recipient@example.com',
284
- message: '', // Required field, can be empty for template emails
285
- type: 'EMAIL',
286
- templateId: 'd-1234567890abcdef1234567890abcdef', // SendGrid template ID
287
- variables: {
288
- firstName: 'John',
289
- lastName: 'Doe',
290
- companyName: 'Acme Corp',
291
- orderNumber: 'ORD-2024-001',
292
- orderDate: '2024-01-15',
293
- items: [
294
- { name: 'Product A', quantity: 2, price: '$29.99' },
295
- { name: 'Product B', quantity: 1, price: '$49.99' },
296
- ],
297
- totalAmount: '$109.97',
298
- },
299
- });
300
-
301
- console.log('SendGrid dynamic template email sent:', result);
302
- }
303
-
304
- /**
305
- * Example 10: Send SendGrid email with custom headers and categories
306
- */
307
- async sendSendGridWithCustomOptions() {
308
- const result = await this.communicationService.sendGenericMessage({
309
- levelId: 1,
310
- levelType: 'organization',
311
- app_code: 'MY_APP_001',
312
- to: ['recipient1@example.com', 'recipient2@example.com'],
313
- cc: ['manager@example.com'],
314
- bcc: ['archive@example.com'],
315
- subject: 'Monthly Newsletter',
316
- message: 'Our Monthly Newsletter',
317
- html: '<h1>Our Monthly Newsletter</h1><p>Latest updates from our team...</p>',
318
- type: 'EMAIL',
319
- });
320
-
321
- console.log('SendGrid custom email sent:', result);
322
- }
323
-
324
- /**
325
- * Example 11: Send message without specifying mode (uses first available)
326
- */
327
- async sendMessageAutoMode() {
328
- const result = await this.communicationService.sendMessage({
329
- levelId: 1,
330
- levelType: 'organization',
331
- app_code: 'MY_APP_001',
332
- to: 'recipient@example.com',
333
- message: 'Hello! This will use the first available communication method.',
334
- });
335
-
336
- console.log('Message sent via auto-selected provider:', result);
337
- }
338
- }
1
+ /**
2
+ * Communication Hub Usage Examples
3
+ *
4
+ * This file demonstrates how to use the hierarchical communication system.
5
+ */
6
+
7
+ import { IntegrationService } from '../service/integration.service';
8
+
9
+ export class CommunicationUsageExamples {
10
+ constructor(private readonly communicationService: IntegrationService) {}
11
+
12
+ /**
13
+ * Example 1: Send an email using Gmail API
14
+ */
15
+ async sendEmailViaGmailApi() {
16
+ // First, create a configuration for Gmail API
17
+ const emailConfig = {
18
+ clientId: 'your-gmail-client-id',
19
+ clientSecret: 'your-gmail-client-secret',
20
+ refreshToken: 'your-refresh-token',
21
+ };
22
+
23
+ const hub = await this.communicationService.createIntegrationConfig(
24
+ 1, // levelId
25
+ 'organization', // levelType
26
+ 'MY_APP_001', // app_code
27
+ 'EMAIL', // integration_type
28
+ 'gmail', // integration_provider
29
+ 1, // integration_source_id
30
+ emailConfig,
31
+ );
32
+
33
+ console.log('Created email config:', hub);
34
+
35
+ // Send a message
36
+ const result = await this.communicationService.sendMessage({
37
+ levelId: 1,
38
+ levelType: 'organization',
39
+ app_code: 'MY_APP_001',
40
+ to: 'recipient@example.com',
41
+ message: 'Hello from Gmail API!',
42
+ mode: 'EMAIL',
43
+ });
44
+
45
+ console.log('Email sent:', result);
46
+ }
47
+
48
+ /**
49
+ * Example 2: Send Email using Outlook API
50
+ */
51
+ async sendEmailViaOutlookApi() {
52
+ const outlookConfig = {
53
+ clientId: 'your-outlook-client-id',
54
+ clientSecret: 'your-outlook-client-secret',
55
+ tenantId: 'your-tenant-id',
56
+ email: 'user@outlook.com',
57
+ };
58
+
59
+ await this.communicationService.createIntegrationConfig(
60
+ 1,
61
+ 'organization',
62
+ 'MY_APP_001',
63
+ 'EMAIL',
64
+ 'outlook',
65
+ 2,
66
+ outlookConfig,
67
+ );
68
+
69
+ const result = await this.communicationService.sendMessage({
70
+ levelId: 1,
71
+ levelType: 'organization',
72
+ app_code: 'MY_APP_001',
73
+ to: 'recipient@example.com',
74
+ message: 'Hello from Outlook API!',
75
+ mode: 'EMAIL',
76
+ });
77
+
78
+ console.log('Email sent:', result);
79
+ }
80
+
81
+ /**
82
+ * Example 3: Send WhatsApp message
83
+ */
84
+ async sendWhatsAppMessage() {
85
+ const whatsappConfig = {
86
+ accessToken: 'your-whatsapp-access-token',
87
+ phoneNumberId: 'your-phone-number-id',
88
+ businessAccountId: 'your-business-account-id',
89
+ };
90
+
91
+ await this.communicationService.createIntegrationConfig(
92
+ 1,
93
+ 'organization',
94
+ 'MY_APP_001',
95
+ 'WA',
96
+ 'whatsapp',
97
+ 3,
98
+ whatsappConfig,
99
+ );
100
+
101
+ const result = await this.communicationService.sendMessage({
102
+ levelId: 1,
103
+ levelType: 'organization',
104
+ app_code: 'MY_APP_001',
105
+ to: '+9876543210',
106
+ message: 'Hello from WhatsApp!',
107
+ mode: 'WA',
108
+ });
109
+
110
+ console.log('WhatsApp sent:', result);
111
+ }
112
+
113
+ /**
114
+ * Example 4: Make a voice call using Ozonetel
115
+ */
116
+ async makeVoiceCall() {
117
+ const voiceConfig = {
118
+ apiKey: 'your-ozonetel-api-key',
119
+ callerId: '+1234567890',
120
+ voiceUrl: 'https://your-voice-script-url.com',
121
+ };
122
+
123
+ await this.communicationService.createIntegrationConfig(
124
+ 1,
125
+ 'organization',
126
+ 'MY_APP_001',
127
+ 'TELEPHONE',
128
+ 'ozonetel',
129
+ 4,
130
+ voiceConfig,
131
+ );
132
+
133
+ const result = await this.communicationService.sendMessage({
134
+ levelId: 1,
135
+ levelType: 'organization',
136
+ app_code: 'MY_APP_001',
137
+ to: '+9876543210',
138
+ message: 'Voice message content',
139
+ mode: 'TELEPHONE',
140
+ });
141
+
142
+ console.log('Voice call initiated:', result);
143
+ }
144
+
145
+ /**
146
+ * Example 5: Get all supported combinations
147
+ */
148
+ getSupportedCombinations() {
149
+ const combinations = this.communicationService.getSupportedCombinations();
150
+ console.log('Supported combinations:', combinations);
151
+
152
+ // Output will be:
153
+ // [
154
+ // { mode: 'EMAIL', service: 'API', provider: 'gmail' },
155
+ // { mode: 'EMAIL', service: 'SMTP', provider: 'gmail' },
156
+ // { mode: 'EMAIL', service: 'API', provider: 'outlook' },
157
+ // { mode: 'EMAIL', service: 'API', provider: 'sendgrid' },
158
+ // { mode: 'WA', service: 'API', provider: 'whatsapp' },
159
+ // { mode: 'TELEPHONE', service: 'THIRD_PARTY', provider: 'ozonetel' },
160
+ // { mode: 'TELEPHONE', service: 'THIRD_PARTY', provider: 'tubelight' }
161
+ // ]
162
+ }
163
+
164
+ /**
165
+ * Example 6: Send Gmail email with attachments
166
+ */
167
+ async sendGmailWithAttachments() {
168
+ const result = await this.communicationService.sendGenericMessage({
169
+ levelId: 1,
170
+ levelType: 'organization',
171
+ app_code: 'MY_APP_001',
172
+ to: 'recipient@example.com',
173
+ subject: 'Email with Attachments',
174
+ message: 'Please find the attached documents.',
175
+ type: 'EMAIL',
176
+ attachments: [
177
+ {
178
+ filename: 'document.pdf',
179
+ content: 'base64-encoded-content-here',
180
+ contentType: 'application/pdf',
181
+ },
182
+ {
183
+ filename: 'image.jpg',
184
+ path: '/path/to/local/image.jpg',
185
+ contentType: 'image/jpeg',
186
+ },
187
+ ],
188
+ });
189
+
190
+ console.log('Gmail with attachments sent:', result);
191
+ }
192
+
193
+ /**
194
+ * Example 7: Send Gmail email using HTML template
195
+ */
196
+ async sendGmailWithTemplate() {
197
+ const htmlTemplate = `
198
+ <html>
199
+ <body>
200
+ <h2>Welcome {{userName}}!</h2>
201
+ <p>Thank you for joining our platform.</p>
202
+ <p>Your account ID is: {{accountId}}</p>
203
+ <a href="{{verificationLink}}">Verify your email</a>
204
+ </body>
205
+ </html>
206
+ `;
207
+
208
+ const result = await this.communicationService.sendGenericMessage({
209
+ levelId: 1,
210
+ levelType: 'organization',
211
+ app_code: 'MY_APP_001',
212
+ to: 'recipient@example.com',
213
+ subject: 'Welcome to Our Platform',
214
+ message: 'Welcome to Our Platform',
215
+ html: htmlTemplate,
216
+ type: 'EMAIL',
217
+ variables: {
218
+ userName: 'John Doe',
219
+ accountId: 'ACC_12345',
220
+ verificationLink: 'https://example.com/verify/token123',
221
+ },
222
+ });
223
+
224
+ console.log('Gmail template email sent:', result);
225
+ }
226
+
227
+ /**
228
+ * Example 8: Send SendGrid email with attachments
229
+ */
230
+ async sendSendGridWithAttachments() {
231
+ // First create SendGrid config
232
+ const sendGridConfig = {
233
+ apiKey: 'your-sendgrid-api-key',
234
+ fromEmail: 'noreply@yourdomain.com',
235
+ fromName: 'Your Company',
236
+ };
237
+
238
+ await this.communicationService.createIntegrationConfig(
239
+ 1,
240
+ 'organization',
241
+ 'MY_APP_001',
242
+ 'EMAIL',
243
+ 'sendgrid',
244
+ 5,
245
+ sendGridConfig,
246
+ );
247
+
248
+ const result = await this.communicationService.sendGenericMessage({
249
+ levelId: 1,
250
+ levelType: 'organization',
251
+ app_code: 'MY_APP_001',
252
+ to: 'recipient@example.com',
253
+ subject: 'Invoice and Receipt',
254
+ message: 'Please find your invoice and receipt attached.',
255
+ type: 'EMAIL',
256
+ attachments: [
257
+ {
258
+ filename: 'invoice.pdf',
259
+ content: 'base64-encoded-invoice-content',
260
+ contentType: 'application/pdf',
261
+ disposition: 'attachment',
262
+ },
263
+ {
264
+ filename: 'receipt.pdf',
265
+ content: 'base64-encoded-receipt-content',
266
+ contentType: 'application/pdf',
267
+ disposition: 'attachment',
268
+ },
269
+ ],
270
+ });
271
+
272
+ console.log('SendGrid with attachments sent:', result);
273
+ }
274
+
275
+ /**
276
+ * Example 9: Send SendGrid email using dynamic template
277
+ */
278
+ async sendSendGridWithDynamicTemplate() {
279
+ const result = await this.communicationService.sendGenericMessage({
280
+ levelId: 1,
281
+ levelType: 'organization',
282
+ app_code: 'MY_APP_001',
283
+ to: 'recipient@example.com',
284
+ message: '', // Required field, can be empty for template emails
285
+ type: 'EMAIL',
286
+ templateId: 'd-1234567890abcdef1234567890abcdef', // SendGrid template ID
287
+ variables: {
288
+ firstName: 'John',
289
+ lastName: 'Doe',
290
+ companyName: 'Acme Corp',
291
+ orderNumber: 'ORD-2024-001',
292
+ orderDate: '2024-01-15',
293
+ items: [
294
+ { name: 'Product A', quantity: 2, price: '$29.99' },
295
+ { name: 'Product B', quantity: 1, price: '$49.99' },
296
+ ],
297
+ totalAmount: '$109.97',
298
+ },
299
+ });
300
+
301
+ console.log('SendGrid dynamic template email sent:', result);
302
+ }
303
+
304
+ /**
305
+ * Example 10: Send SendGrid email with custom headers and categories
306
+ */
307
+ async sendSendGridWithCustomOptions() {
308
+ const result = await this.communicationService.sendGenericMessage({
309
+ levelId: 1,
310
+ levelType: 'organization',
311
+ app_code: 'MY_APP_001',
312
+ to: ['recipient1@example.com', 'recipient2@example.com'],
313
+ cc: ['manager@example.com'],
314
+ bcc: ['archive@example.com'],
315
+ subject: 'Monthly Newsletter',
316
+ message: 'Our Monthly Newsletter',
317
+ html: '<h1>Our Monthly Newsletter</h1><p>Latest updates from our team...</p>',
318
+ type: 'EMAIL',
319
+ });
320
+
321
+ console.log('SendGrid custom email sent:', result);
322
+ }
323
+
324
+ /**
325
+ * Example 11: Send message without specifying mode (uses first available)
326
+ */
327
+ async sendMessageAutoMode() {
328
+ const result = await this.communicationService.sendMessage({
329
+ levelId: 1,
330
+ levelType: 'organization',
331
+ app_code: 'MY_APP_001',
332
+ to: 'recipient@example.com',
333
+ message: 'Hello! This will use the first available communication method.',
334
+ });
335
+
336
+ console.log('Message sent via auto-selected provider:', result);
337
+ }
338
+ }