rez_core 4.0.200 → 4.0.202

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 (550) hide show
  1. package/.prettierrc +3 -3
  2. package/README.md +99 -99
  3. package/dist/config/config.module.js +2 -2
  4. package/dist/config/config.module.js.map +1 -1
  5. package/dist/config/database.config.d.ts +1 -1
  6. package/dist/config/database.config.js +11 -15
  7. package/dist/config/database.config.js.map +1 -1
  8. package/dist/core.module.js +3 -0
  9. package/dist/core.module.js.map +1 -1
  10. package/dist/module/auth/guards/role.guard.js +3 -3
  11. package/dist/module/auth/services/auth.service.js +3 -3
  12. package/dist/module/auth/services/auth.service.js.map +1 -1
  13. package/dist/module/enterprise/entity/organization.entity.js +1 -1
  14. package/dist/module/enterprise/repository/school.repository.js +3 -3
  15. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  16. package/dist/module/entity_json/controller/entity_json.controller.d.ts +11 -1
  17. package/dist/module/entity_json/controller/entity_json.controller.js +14 -0
  18. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  19. package/dist/module/entity_json/entity/entityJson.entity.d.ts +10 -0
  20. package/dist/module/entity_json/entity/entityJson.entity.js +55 -0
  21. package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -0
  22. package/dist/module/entity_json/entity_json.module.js +2 -1
  23. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  24. package/dist/module/entity_json/service/entity_json.service.d.ts +11 -3
  25. package/dist/module/entity_json/service/entity_json.service.js +93 -50
  26. package/dist/module/entity_json/service/entity_json.service.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.d.ts +1 -4
  31. package/dist/module/filter/service/filter.service.js +39 -69
  32. package/dist/module/filter/service/filter.service.js.map +1 -1
  33. package/dist/module/integration/entity/integration-config.entity.js +6 -6
  34. package/dist/module/integration/entity/integration-config.entity.js.map +1 -1
  35. package/dist/module/integration/entity/integration-entity-mapper.entity.js +1 -1
  36. package/dist/module/integration/entity/integration-entity-mapper.entity.js.map +1 -1
  37. package/dist/module/integration/entity/integration-source.entity.js +4 -4
  38. package/dist/module/integration/entity/integration-source.entity.js.map +1 -1
  39. package/dist/module/integration/entity/user-integration.entity.js +4 -4
  40. package/dist/module/integration/entity/user-integration.entity.js.map +1 -1
  41. package/dist/module/integration/examples/usage.example.js +9 -9
  42. package/dist/module/integration/service/integration.service.js +1 -1
  43. package/dist/module/integration/service/wrapper.service.js +28 -29
  44. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  45. package/dist/module/linked_attributes/entity/linked_attribute.entity.d.ts +1 -0
  46. package/dist/module/linked_attributes/entity/linked_attribute.entity.js +4 -0
  47. package/dist/module/linked_attributes/entity/linked_attribute.entity.js.map +1 -1
  48. package/dist/module/listmaster/entity/list-master-items.entity.js +3 -3
  49. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  50. package/dist/module/listmaster/entity/list-master.entity.js +4 -4
  51. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  52. package/dist/module/listmaster/service/list-master-item.service.js +3 -3
  53. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  54. package/dist/module/mapper/entity/field-mapper.entity.js +6 -6
  55. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  56. package/dist/module/mapper/service/field-mapper.service.js +5 -5
  57. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  58. package/dist/module/mapper/service/mapper.service.js +4 -4
  59. package/dist/module/mapper/service/mapper.service.js.map +1 -1
  60. package/dist/module/meta/controller/attribute-master.controller.d.ts +2 -3
  61. package/dist/module/meta/controller/attribute-master.controller.js +2 -12
  62. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  63. package/dist/module/meta/entity/app-master.entity.d.ts +2 -2
  64. package/dist/module/meta/entity/app-master.entity.js +4 -4
  65. package/dist/module/meta/entity/attribute-master.entity.d.ts +1 -0
  66. package/dist/module/meta/entity/attribute-master.entity.js +4 -0
  67. package/dist/module/meta/entity/attribute-master.entity.js.map +1 -1
  68. package/dist/module/meta/entity/entity-master.entity.js +1 -1
  69. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  70. package/dist/module/meta/entity/view-master.entity.js +1 -1
  71. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  72. package/dist/module/meta/repository/attribute-master.repository.js +2 -2
  73. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  74. package/dist/module/meta/repository/entity-attribute-update.repository.js +3 -3
  75. package/dist/module/meta/repository/entity-master.repository.js +2 -2
  76. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  77. package/dist/module/meta/service/attribute-master.service.js +1 -1
  78. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  79. package/dist/module/meta/service/entity-dynamic.service.js +27 -27
  80. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  81. package/dist/module/meta/service/entity-list.service.js +3 -3
  82. package/dist/module/meta/service/entity-master.service.js +4 -4
  83. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  84. package/dist/module/meta/service/entity-relation.service.js +13 -13
  85. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  86. package/dist/module/meta/service/entity-service-impl.service.js +3 -3
  87. package/dist/module/meta/service/media-data.service.js +9 -9
  88. package/dist/module/meta/service/media-data.service.js.map +1 -1
  89. package/dist/module/meta/service/resolver.service.js +17 -17
  90. package/dist/module/meta/service/resolver.service.js.map +1 -1
  91. package/dist/module/module/repository/menu.repository.js +12 -12
  92. package/dist/module/module/service/module-access.service.js +8 -2
  93. package/dist/module/module/service/module-access.service.js.map +1 -1
  94. package/dist/module/notification/controller/otp.controller.d.ts +1 -31
  95. package/dist/module/notification/entity/otp.entity.js +1 -1
  96. package/dist/module/notification/entity/otp.entity.js.map +1 -1
  97. package/dist/module/notification/service/notification.service.js +22 -26
  98. package/dist/module/notification/service/notification.service.js.map +1 -1
  99. package/dist/module/notification/service/otp.service.d.ts +1 -31
  100. package/dist/module/notification/service/otp.service.js +1 -0
  101. package/dist/module/notification/service/otp.service.js.map +1 -1
  102. package/dist/module/user/controller/login.controller.js +20 -19
  103. package/dist/module/user/controller/login.controller.js.map +1 -1
  104. package/dist/module/user/entity/user-role-mapping.entity.js +1 -1
  105. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  106. package/dist/module/user/service/login.service.d.ts +3 -57
  107. package/dist/module/user/service/login.service.js +13 -3
  108. package/dist/module/user/service/login.service.js.map +1 -1
  109. package/dist/module/user/service/role.service.js +4 -4
  110. package/dist/module/user/service/user-session.service.js +4 -4
  111. package/dist/module/user/service/user-session.service.js.map +1 -1
  112. package/dist/module/user/service/user.service.js +1 -1
  113. package/dist/module/user/service/user.service.js.map +1 -1
  114. package/dist/module/workflow/entity/action-category.entity.d.ts +1 -1
  115. package/dist/module/workflow/entity/action-category.entity.js +1 -1
  116. package/dist/module/workflow/entity/action-data.entity.js +1 -1
  117. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  118. package/dist/module/workflow/entity/action.entity.js +1 -1
  119. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  120. package/dist/module/workflow/entity/comm-template.entity.js +1 -1
  121. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  122. package/dist/module/workflow/entity/template-attach-mapper.entity.js +1 -1
  123. package/dist/module/workflow/entity/template-attach-mapper.entity.js.map +1 -1
  124. package/dist/module/workflow/repository/action-data.repository.js +4 -4
  125. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  126. package/dist/module/workflow/repository/action.repository.js +21 -21
  127. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  128. package/dist/module/workflow/repository/comm-template.repository.js +7 -7
  129. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  130. package/dist/module/workflow/repository/form-master.repository.js +3 -3
  131. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  132. package/dist/module/workflow/repository/stage-group.repository.js +23 -23
  133. package/dist/module/workflow/repository/stage-movement.repository.js +17 -17
  134. package/dist/module/workflow/repository/stage-movement.repository.js.map +1 -1
  135. package/dist/module/workflow/repository/stage.repository.js +8 -8
  136. package/dist/module/workflow/repository/task.repository.js +4 -4
  137. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  138. package/dist/module/workflow/service/action-template-mapping.service.js +22 -22
  139. package/dist/module/workflow/service/action.service.js +13 -13
  140. package/dist/module/workflow/service/action.service.js.map +1 -1
  141. package/dist/module/workflow/service/entity-modification.service.js +6 -6
  142. package/dist/module/workflow/service/populate-workflow.service.js +8 -8
  143. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  144. package/dist/module/workflow/service/stage-group.service.js +6 -6
  145. package/dist/module/workflow/service/stage-group.service.js.map +1 -1
  146. package/dist/module/workflow/service/stage.service.js +4 -4
  147. package/dist/module/workflow/service/stage.service.js.map +1 -1
  148. package/dist/module/workflow/service/task.service.js +33 -33
  149. package/dist/module/workflow/service/task.service.js.map +1 -1
  150. package/dist/module/workflow/service/workflow-list-master.service.js +16 -16
  151. package/dist/module/workflow/service/workflow-list-master.service.js.map +1 -1
  152. package/dist/module/workflow/service/workflow-meta.service.js +31 -31
  153. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  154. package/dist/module/workflow/service/workflow.service.js +5 -5
  155. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  156. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.d.ts +1 -1
  157. package/dist/module/workflow-automation/entity/workflow-automation-action.entity.js +1 -1
  158. package/dist/module/workflow-automation/service/schedule-handler.service.js +14 -14
  159. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js +1 -1
  160. package/dist/module/workflow-automation/service/workflow-automation-engine.service.js.map +1 -1
  161. package/dist/module/workflow-automation/service/workflow-automation.service.js +4 -4
  162. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js +4 -4
  163. package/dist/module/workflow-schedule/entities/scheduled-workflow.entity.js.map +1 -1
  164. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js +2 -2
  165. package/dist/module/workflow-schedule/entities/workflow-execution-log.entity.js.map +1 -1
  166. package/dist/module/workflow-schedule/processors/schedule.processor.js +4 -4
  167. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +9 -9
  168. package/dist/table.config.d.ts +2 -1
  169. package/dist/table.config.js +4 -6
  170. package/dist/table.config.js.map +1 -1
  171. package/dist/tsconfig.build.tsbuildinfo +1 -1
  172. package/dist/utils/service/reflection-helper.service.js +3 -3
  173. package/dist/utils/service/reflection-helper.service.js.map +1 -1
  174. package/docs/modules/event-driven-integration-design.md +91 -91
  175. package/docs/modules/integration.md +250 -250
  176. package/eslint.config.mjs +34 -34
  177. package/nest-cli.json +14 -14
  178. package/package.json +124 -124
  179. package/src/app.controller.ts +12 -12
  180. package/src/app.module.ts +66 -66
  181. package/src/app.service.ts +8 -8
  182. package/src/config/bull.config.ts +69 -69
  183. package/src/config/config.module.ts +18 -17
  184. package/src/config/database.config.ts +23 -48
  185. package/src/constant/global.constant.ts +67 -67
  186. package/src/core.module.ts +91 -88
  187. package/src/decorators/roles.decorator.ts +7 -7
  188. package/src/dtos/response.dto.ts +6 -6
  189. package/src/dtos/response.ts +5 -5
  190. package/src/index.ts +1 -1
  191. package/src/module/auth/auth.module.ts +49 -49
  192. package/src/module/auth/controller/auth.controller.ts +28 -28
  193. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  194. package/src/module/auth/guards/jwt.guard.ts +22 -22
  195. package/src/module/auth/guards/role.guard.ts +68 -68
  196. package/src/module/auth/services/auth.service.ts +50 -50
  197. package/src/module/auth/services/jwt.service.ts +11 -11
  198. package/src/module/auth/strategies/google.strategy.ts +54 -54
  199. package/src/module/auth/strategies/jwt.strategy.ts +58 -58
  200. package/src/module/auth/strategies/local.strategy.ts +13 -13
  201. package/src/module/dashboard/controller/dashboard.controller.ts +36 -36
  202. package/src/module/dashboard/dashboard.module.ts +21 -21
  203. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +27 -27
  204. package/src/module/dashboard/entity/widget_master.entity.ts +18 -18
  205. package/src/module/dashboard/repository/dashboard.repository.ts +42 -42
  206. package/src/module/dashboard/service/dashboard.service.ts +73 -73
  207. package/src/module/dev/dev.module.ts +12 -12
  208. package/src/module/dev/service/dev.service.ts +7 -7
  209. package/src/module/enterprise/controller/organization.controller.ts +36 -36
  210. package/src/module/enterprise/enterprise.module.ts +30 -30
  211. package/src/module/enterprise/entity/enterprise.entity.ts +37 -37
  212. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +13 -13
  213. package/src/module/enterprise/entity/organization.entity.ts +92 -92
  214. package/src/module/enterprise/repository/enterprise.repository.ts +31 -31
  215. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  216. package/src/module/enterprise/repository/school.repository.ts +278 -278
  217. package/src/module/enterprise/service/brand.service.ts +5 -5
  218. package/src/module/enterprise/service/enterprise.service.ts +16 -16
  219. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  220. package/src/module/enterprise/service/organization.service.ts +145 -145
  221. package/src/module/entity_json/controller/entity_json.controller.ts +47 -47
  222. package/src/module/entity_json/entity/entityJson.entity.ts +39 -0
  223. package/src/module/entity_json/entity_json.module.ts +16 -15
  224. package/src/module/entity_json/service/entity_json.service.ts +317 -265
  225. package/src/module/filter/controller/filter.controller.ts +84 -84
  226. package/src/module/filter/dto/filter-request.dto.ts +38 -38
  227. package/src/module/filter/entity/saved-filter-detail.entity.ts +41 -41
  228. package/src/module/filter/entity/saved-filter-master.entity.ts +23 -23
  229. package/src/module/filter/filter.module.ts +31 -31
  230. package/src/module/filter/repository/saved-filter.repository.ts +168 -168
  231. package/src/module/filter/service/filter-evaluator.service.ts +86 -86
  232. package/src/module/filter/service/filter.service.ts +1005 -1051
  233. package/src/module/filter/service/saved-filter.service.ts +170 -170
  234. package/src/module/ics/controller/ics.controller.ts +21 -21
  235. package/src/module/ics/dto/ics.dto.ts +55 -55
  236. package/src/module/ics/ics.module.ts +13 -13
  237. package/src/module/ics/service/ics.service.ts +57 -57
  238. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  239. package/src/module/integration/controller/integration.controller.ts +662 -662
  240. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  241. package/src/module/integration/dto/create-config.dto.ts +526 -526
  242. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  243. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  244. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  245. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  246. package/src/module/integration/examples/usage.example.ts +338 -338
  247. package/src/module/integration/factories/base.factory.ts +7 -7
  248. package/src/module/integration/factories/email.factory.ts +49 -49
  249. package/src/module/integration/factories/integration.factory.ts +121 -121
  250. package/src/module/integration/factories/sms.factory.ts +51 -51
  251. package/src/module/integration/factories/telephone.factory.ts +41 -41
  252. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  253. package/src/module/integration/integration.module.ts +110 -110
  254. package/src/module/integration/service/calendar-event.service.ts +118 -118
  255. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  256. package/src/module/integration/service/integration-queue.service.ts +229 -229
  257. package/src/module/integration/service/integration.service.ts +2633 -2633
  258. package/src/module/integration/service/oauth.service.ts +224 -224
  259. package/src/module/integration/service/wrapper.service.ts +700 -701
  260. package/src/module/integration/strategies/email/gmail-api.strategy.ts +280 -280
  261. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  262. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  263. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -260
  264. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  265. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  266. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  267. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  268. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  269. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  270. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  271. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  272. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  273. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  274. package/src/module/layout/controller/layout.controller.ts +47 -47
  275. package/src/module/layout/entity/header-items.entity.ts +28 -28
  276. package/src/module/layout/entity/header-section.entity.ts +19 -19
  277. package/src/module/layout/layout.module.ts +21 -21
  278. package/src/module/layout/repository/header-items.repository.ts +18 -18
  279. package/src/module/layout/repository/header-section.repository.ts +22 -22
  280. package/src/module/layout/service/header-section.service.ts +25 -25
  281. package/src/module/layout_preference/controller/layout_preference.controller.ts +73 -73
  282. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  283. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  284. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  285. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  286. package/src/module/lead/controller/lead.controller.ts +30 -30
  287. package/src/module/lead/lead.module.ts +14 -14
  288. package/src/module/lead/repository/lead.repository.ts +41 -41
  289. package/src/module/lead/service/lead.service.ts +54 -54
  290. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +10 -10
  291. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -48
  292. package/src/module/linked_attributes/linked_attributes.module.ts +16 -16
  293. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
  294. package/src/module/linked_attributes/service/linked_attributes.service.ts +22 -22
  295. package/src/module/listmaster/controller/list-master.controller.ts +230 -230
  296. package/src/module/listmaster/entity/list-master-items.entity.ts +43 -43
  297. package/src/module/listmaster/entity/list-master.entity.ts +33 -33
  298. package/src/module/listmaster/listmaster.module.ts +46 -46
  299. package/src/module/listmaster/repository/list-master-items.repository.ts +169 -169
  300. package/src/module/listmaster/repository/list-master.repository.ts +46 -46
  301. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  302. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  303. package/src/module/listmaster/service/list-master-item.service.ts +292 -292
  304. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  305. package/src/module/listmaster/service/list-master.service.ts +535 -535
  306. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  307. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  308. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  309. package/src/module/mapper/entity/field-lovs.entity.ts +19 -19
  310. package/src/module/mapper/entity/field-mapper.entity.ts +53 -53
  311. package/src/module/mapper/entity/mapper.entity.ts +16 -16
  312. package/src/module/mapper/mapper.module.ts +34 -34
  313. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  314. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  315. package/src/module/mapper/repository/mapper.repository.ts +15 -15
  316. package/src/module/mapper/service/field-mapper.service.ts +271 -271
  317. package/src/module/mapper/service/mapper.service.ts +79 -79
  318. package/src/module/master/controller/master.controller.ts +74 -74
  319. package/src/module/master/service/master.service.ts +483 -483
  320. package/src/module/meta/controller/app-master.controller.ts +38 -38
  321. package/src/module/meta/controller/attribute-master.controller.ts +84 -86
  322. package/src/module/meta/controller/entity-dynamic.controller.ts +125 -125
  323. package/src/module/meta/controller/entity-master.controller.ts +41 -41
  324. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  325. package/src/module/meta/controller/entity.controller.ts +392 -392
  326. package/src/module/meta/controller/entity.public.controller.ts +75 -75
  327. package/src/module/meta/controller/media.controller.ts +107 -107
  328. package/src/module/meta/controller/meta.controller.ts +96 -96
  329. package/src/module/meta/controller/view-master.controller.ts +86 -86
  330. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  331. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  332. package/src/module/meta/dto/entity-table.dto.ts +9 -9
  333. package/src/module/meta/entity/app-master.entity.ts +34 -34
  334. package/src/module/meta/entity/attribute-master.entity.ts +92 -89
  335. package/src/module/meta/entity/base-entity.entity.ts +75 -75
  336. package/src/module/meta/entity/entity-master.entity.ts +85 -85
  337. package/src/module/meta/entity/entity-relation-data.entity.ts +29 -29
  338. package/src/module/meta/entity/entity-relation.entity.ts +23 -23
  339. package/src/module/meta/entity/entity-table-column.entity.ts +61 -61
  340. package/src/module/meta/entity/entity-table.entity.ts +50 -50
  341. package/src/module/meta/entity/media-data.entity.ts +32 -32
  342. package/src/module/meta/entity/preference.entity.ts +62 -62
  343. package/src/module/meta/entity/view-master.entity.ts +41 -41
  344. package/src/module/meta/entity.module.ts +166 -166
  345. package/src/module/meta/repository/app-master.repository.ts +20 -20
  346. package/src/module/meta/repository/attribute-master.repository.ts +138 -138
  347. package/src/module/meta/repository/entity-attribute-update.repository.ts +44 -44
  348. package/src/module/meta/repository/entity-master.repository.ts +99 -99
  349. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  350. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  351. package/src/module/meta/repository/media-data.repository.ts +50 -50
  352. package/src/module/meta/repository/preference.repository.ts +20 -20
  353. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  354. package/src/module/meta/repository/view-master.repository.ts +42 -42
  355. package/src/module/meta/service/app-master.service.ts +37 -37
  356. package/src/module/meta/service/attribute-master.service.ts +130 -130
  357. package/src/module/meta/service/common.service.ts +9 -9
  358. package/src/module/meta/service/entity-attribute-update.service.ts +28 -28
  359. package/src/module/meta/service/entity-dynamic.service.ts +819 -819
  360. package/src/module/meta/service/entity-list.service.ts +205 -205
  361. package/src/module/meta/service/entity-master.service.ts +175 -175
  362. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  363. package/src/module/meta/service/entity-relation.service.ts +69 -69
  364. package/src/module/meta/service/entity-service-impl.service.ts +525 -525
  365. package/src/module/meta/service/entity-table-column.service.ts +39 -39
  366. package/src/module/meta/service/entity-table.service.ts +150 -150
  367. package/src/module/meta/service/entity-validation.service.ts +187 -187
  368. package/src/module/meta/service/entity.service.ts +67 -67
  369. package/src/module/meta/service/field-group.service.ts +103 -103
  370. package/src/module/meta/service/media-data.service.ts +507 -507
  371. package/src/module/meta/service/populate-meta.service.ts +193 -193
  372. package/src/module/meta/service/preference.service.ts +16 -16
  373. package/src/module/meta/service/resolver.service.ts +267 -267
  374. package/src/module/meta/service/section-master.service.ts +104 -104
  375. package/src/module/meta/service/update-form-json.service.ts +22 -22
  376. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  377. package/src/module/meta/service/view-master.service.ts +127 -127
  378. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  379. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  380. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  381. package/src/module/module/controller/menu.controller.ts +15 -15
  382. package/src/module/module/controller/module-access.controller.ts +134 -134
  383. package/src/module/module/entity/menu.entity.ts +43 -43
  384. package/src/module/module/entity/module-access.entity.ts +25 -25
  385. package/src/module/module/entity/module-action.entity.ts +17 -17
  386. package/src/module/module/entity/module.entity.ts +52 -52
  387. package/src/module/module/module.module.ts +42 -42
  388. package/src/module/module/repository/menu.repository.ts +184 -184
  389. package/src/module/module/repository/module-access.repository.ts +344 -344
  390. package/src/module/module/service/menu.service.ts +82 -82
  391. package/src/module/module/service/module-access.service.ts +209 -194
  392. package/src/module/notification/controller/notification.controller.ts +58 -58
  393. package/src/module/notification/controller/otp.controller.ts +117 -117
  394. package/src/module/notification/entity/notification.entity.ts +26 -26
  395. package/src/module/notification/entity/otp.entity.ts +28 -28
  396. package/src/module/notification/firebase-admin.config.ts +22 -22
  397. package/src/module/notification/notification.module.ts +69 -69
  398. package/src/module/notification/repository/otp.repository.ts +27 -27
  399. package/src/module/notification/service/email.service.ts +127 -127
  400. package/src/module/notification/service/notification.service.ts +163 -160
  401. package/src/module/notification/service/otp.service.ts +133 -132
  402. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  403. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  404. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  405. package/src/module/third-party-module/third-party.module.ts +12 -12
  406. package/src/module/user/controller/login.controller.ts +198 -197
  407. package/src/module/user/controller/user.controller.ts +40 -40
  408. package/src/module/user/dto/create-user.dto.ts +62 -62
  409. package/src/module/user/dto/update-user.dto.ts +4 -4
  410. package/src/module/user/entity/role.entity.ts +33 -33
  411. package/src/module/user/entity/user-role-mapping.entity.ts +38 -38
  412. package/src/module/user/entity/user-session.entity.ts +73 -73
  413. package/src/module/user/entity/user.entity.ts +59 -59
  414. package/src/module/user/repository/role.repository.ts +96 -96
  415. package/src/module/user/repository/user-role-mapping.repository.ts +126 -126
  416. package/src/module/user/repository/user.repository.ts +50 -50
  417. package/src/module/user/repository/userSession.repository.ts +33 -33
  418. package/src/module/user/service/login.service.ts +326 -304
  419. package/src/module/user/service/role.service.ts +189 -189
  420. package/src/module/user/service/user-role-mapping.service.ts +98 -98
  421. package/src/module/user/service/user-session.service.ts +168 -168
  422. package/src/module/user/service/user.service.ts +368 -365
  423. package/src/module/user/user.module.ts +65 -65
  424. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  425. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  426. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  427. package/src/module/workflow/controller/action.controller.ts +111 -111
  428. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  429. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  430. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  431. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  432. package/src/module/workflow/controller/stage-group.controller.ts +48 -48
  433. package/src/module/workflow/controller/stage.controller.ts +50 -50
  434. package/src/module/workflow/controller/task.controller.ts +77 -77
  435. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  436. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  437. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  438. package/src/module/workflow/entity/action-category.entity.ts +38 -38
  439. package/src/module/workflow/entity/action-data.entity.ts +55 -55
  440. package/src/module/workflow/entity/action-resources-mapping.entity.ts +29 -29
  441. package/src/module/workflow/entity/action-template-mapping.entity.ts +17 -17
  442. package/src/module/workflow/entity/action.entity.ts +53 -53
  443. package/src/module/workflow/entity/activity-log.entity.ts +43 -43
  444. package/src/module/workflow/entity/comm-template.entity.ts +43 -43
  445. package/src/module/workflow/entity/entity-modification.entity.ts +38 -38
  446. package/src/module/workflow/entity/form.entity.ts +25 -25
  447. package/src/module/workflow/entity/stage-action-mapping.entity.ts +17 -17
  448. package/src/module/workflow/entity/stage-group.entity.ts +23 -23
  449. package/src/module/workflow/entity/stage-movement-data.entity.ts +38 -38
  450. package/src/module/workflow/entity/stage.entity.ts +20 -20
  451. package/src/module/workflow/entity/task-data.entity.ts +88 -88
  452. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  453. package/src/module/workflow/entity/workflow-data.entity.ts +11 -11
  454. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  455. package/src/module/workflow/entity/workflow.entity.ts +20 -20
  456. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  457. package/src/module/workflow/repository/action-data.repository.ts +334 -334
  458. package/src/module/workflow/repository/action.repository.ts +323 -323
  459. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  460. package/src/module/workflow/repository/comm-template.repository.ts +149 -149
  461. package/src/module/workflow/repository/form-master.repository.ts +59 -59
  462. package/src/module/workflow/repository/stage-group.repository.ts +176 -176
  463. package/src/module/workflow/repository/stage-movement.repository.ts +244 -244
  464. package/src/module/workflow/repository/stage.repository.ts +172 -172
  465. package/src/module/workflow/repository/task.repository.ts +134 -134
  466. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  467. package/src/module/workflow/service/action-category.service.ts +33 -33
  468. package/src/module/workflow/service/action-data.service.ts +62 -62
  469. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  470. package/src/module/workflow/service/action-template-mapping.service.ts +106 -106
  471. package/src/module/workflow/service/action.service.ts +279 -279
  472. package/src/module/workflow/service/activity-log.service.ts +107 -107
  473. package/src/module/workflow/service/comm-template.service.ts +180 -180
  474. package/src/module/workflow/service/entity-modification.service.ts +67 -67
  475. package/src/module/workflow/service/form-master.service.ts +35 -35
  476. package/src/module/workflow/service/populate-workflow.service.ts +303 -303
  477. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  478. package/src/module/workflow/service/stage-group.service.ts +319 -319
  479. package/src/module/workflow/service/stage.service.ts +199 -199
  480. package/src/module/workflow/service/task.service.ts +569 -569
  481. package/src/module/workflow/service/workflow-list-master.service.ts +60 -60
  482. package/src/module/workflow/service/workflow-meta.service.ts +654 -654
  483. package/src/module/workflow/service/workflow.service.ts +205 -205
  484. package/src/module/workflow/workflow.module.ts +176 -176
  485. package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
  486. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
  487. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  488. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +40 -40
  489. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  490. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  491. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  492. package/src/module/workflow-automation/service/schedule-handler.service.ts +149 -149
  493. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +214 -214
  494. package/src/module/workflow-automation/service/workflow-automation.service.ts +508 -508
  495. package/src/module/workflow-automation/workflow-automation.module.ts +47 -47
  496. package/src/module/workflow-schedule/INSTALLATION.md +244 -244
  497. package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
  498. package/src/module/workflow-schedule/README.md +422 -422
  499. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
  500. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +255 -255
  501. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
  502. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
  503. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
  504. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
  505. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
  506. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
  507. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
  508. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
  509. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +53 -53
  510. package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
  511. package/src/module/workflow-schedule/processors/schedule.processor.ts +584 -584
  512. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +600 -600
  513. package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
  514. package/src/resources/dev.properties.yaml +30 -31
  515. package/src/resources/local.properties.yaml +27 -27
  516. package/src/resources/properties.module.ts +12 -12
  517. package/src/resources/properties.yaml.ts +11 -11
  518. package/src/resources/uat.properties.yaml +31 -31
  519. package/src/table.config.ts +128 -130
  520. package/src/utils/dto/excel-data.dto.ts +14 -14
  521. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  522. package/src/utils/service/base64util.service.ts +18 -18
  523. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  524. package/src/utils/service/codeGenerator.service.ts +22 -22
  525. package/src/utils/service/dateUtil.service.ts +17 -17
  526. package/src/utils/service/encryptUtil.service.ts +97 -97
  527. package/src/utils/service/excel-helper.service.ts +72 -72
  528. package/src/utils/service/excelUtil.service.ts +15 -15
  529. package/src/utils/service/file-util.service.ts +11 -11
  530. package/src/utils/service/json-util.service.ts +23 -23
  531. package/src/utils/service/loggingUtil.service.ts +88 -88
  532. package/src/utils/service/reflection-helper.service.ts +62 -62
  533. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  534. package/src/utils/utils.module.ts +27 -27
  535. package/tsconfig.build.json +4 -4
  536. package/tsconfig.json +24 -24
  537. package/.claude/settings.local.json +0 -26
  538. package/.idea/250218_nodejs_core.iml +0 -9
  539. package/.idea/codeStyles/Project.xml +0 -59
  540. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  541. package/.idea/copilot.data.migration.agent.xml +0 -6
  542. package/.idea/copilot.data.migration.ask.xml +0 -6
  543. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  544. package/.idea/copilot.data.migration.edit.xml +0 -6
  545. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  546. package/.idea/misc.xml +0 -6
  547. package/.idea/modules.xml +0 -8
  548. package/.idea/prettier.xml +0 -6
  549. package/.idea/vcs.xml +0 -6
  550. package/server.log +0 -850
@@ -1,172 +1,172 @@
1
- import {
2
- BadRequestException,
3
- Inject,
4
- Injectable,
5
- NotFoundException,
6
- } from '@nestjs/common';
7
- import { StageGroup } from '../entity/stage-group.entity';
8
- import { InjectRepository } from '@nestjs/typeorm';
9
- import { DataSource, Repository } from 'typeorm';
10
- import { Stage } from '../entity/stage.entity';
11
-
12
- @Injectable()
13
- export class StageRepository {
14
- constructor(
15
- @InjectRepository(Stage)
16
- private readonly stageRepository: Repository<Stage>,
17
- private readonly dataSource: DataSource,
18
- ) {}
19
-
20
- async getAllStage(stage_group_id: number, organization_id: number) {
21
- if (!stage_group_id) {
22
- throw new BadRequestException('stage_group_id is required');
23
- }
24
-
25
- // 1. Get stage group name
26
- const stageGroup = (await this.dataSource.manager.findOne(
27
- 'frm_wf_stage_group',
28
- {
29
- where: { id: stage_group_id },
30
- },
31
- )) as StageGroup;
32
-
33
- if (!stageGroup) {
34
- throw new NotFoundException('Stage group not found');
35
- }
36
-
37
- const stageGroupName = stageGroup.name;
38
-
39
- // 2. Get all stages under that group
40
- const result = await this.stageRepository.find({
41
- where: {
42
- stage_group_id,
43
- organization_id,
44
- },
45
- order: {
46
- sequence: 'ASC',
47
- },
48
- });
49
-
50
- if (!result || result.length === 0) {
51
- return [];
52
- }
53
-
54
- // 3. Modify stage names
55
- const updatedStages = result.map((stage) => ({
56
- ...stage,
57
- name: stage.name,
58
- full_name: `${stageGroupName} - ${stage.name}`,
59
- }));
60
-
61
- return updatedStages;
62
- }
63
-
64
- async getStageGroupsWithStagesByWorkflowId(
65
- stage_group_id: number,
66
- organization_id: number,
67
- ): Promise<any[]> {
68
- if (!stage_group_id) {
69
- throw new BadRequestException('stage_group_id is required');
70
- }
71
-
72
- // 1. Find the stage group to get workflow_id
73
- const stageGroup = (await this.dataSource.manager.findOne(
74
- 'frm_wf_stage_group',
75
- {
76
- where: { id: stage_group_id, organization_id },
77
- },
78
- )) as StageGroup;
79
-
80
- if (!stageGroup) {
81
- return [];
82
- }
83
-
84
- // 2. Fetch all groups + stages in one query
85
- const rows = await this.dataSource.query(
86
- `
87
- SELECT
88
- g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
89
- s.*
90
- FROM frm_wf_stage_group g
91
- INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
92
- WHERE g.workflow_id = $1 AND g.organization_id = $2 AND g.id = $3
93
- ORDER BY g.id, s.id
94
- `,
95
- [stageGroup.workflow_id, organization_id, stage_group_id],
96
- );
97
- // const rows2 = await this.dataSource.query(
98
- // `
99
- // SELECT
100
- // g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
101
- // s.*
102
- // FROM frm_wf_stage_group g
103
- // INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
104
- // WHERE g.workflow_id = ? AND g.organization_id = ?
105
- // ORDER BY g.id, s.id
106
- // `,
107
- // [stageGroup.workflow_id, organization_id],
108
- // );
109
-
110
- // console.log(rows2, '-----------INNER JOIN----------');
111
-
112
- if (!rows || rows.length === 0) {
113
- return [];
114
- }
115
-
116
- return rows;
117
- }
118
-
119
- async getAllStageGroupAndStageByStageMovement(
120
- stage_group_id: number,
121
- organization_id: number,
122
- ) {
123
- // 1. Find the current stage group
124
- const currentStageGroup = await this.dataSource.manager.findOne<any>(
125
- 'frm_wf_stage_group',
126
- { where: { id: stage_group_id, organization_id } },
127
- );
128
-
129
- if (!currentStageGroup) {
130
- return [];
131
- }
132
-
133
- // 2. Get all stage groups in the same workflow with sequence <= current
134
- const stageGroups = await this.dataSource.manager.find<any>(
135
- 'frm_wf_stage_group',
136
- {
137
- where: {
138
- workflow_id: currentStageGroup.workflow_id,
139
- organization_id,
140
- },
141
- order: { sequence: 'ASC' },
142
- },
143
- );
144
-
145
- // Filter only groups with sequence <= current
146
- const eligibleGroups = stageGroups.filter(
147
- (g) => g.sequence <= currentStageGroup.sequence,
148
- );
149
-
150
- const flatResults: any[] = [];
151
-
152
- // 3. For each eligible group, fetch its stages
153
- for (const group of eligibleGroups) {
154
- const stages = await this.stageRepository.find({
155
- where: { stage_group_id: group.id, organization_id },
156
- order: { sequence: 'ASC' },
157
- });
158
-
159
- if (!stages || stages.length === 0) continue;
160
-
161
- // 4. Flatten into result with full_name
162
- for (const stage of stages) {
163
- flatResults.push({
164
- ...stage,
165
- full_name: `${group.name} - ${stage.name}`,
166
- });
167
- }
168
- }
169
-
170
- return flatResults;
171
- }
172
- }
1
+ import {
2
+ BadRequestException,
3
+ Inject,
4
+ Injectable,
5
+ NotFoundException,
6
+ } from '@nestjs/common';
7
+ import { StageGroup } from '../entity/stage-group.entity';
8
+ import { InjectRepository } from '@nestjs/typeorm';
9
+ import { DataSource, Repository } from 'typeorm';
10
+ import { Stage } from '../entity/stage.entity';
11
+
12
+ @Injectable()
13
+ export class StageRepository {
14
+ constructor(
15
+ @InjectRepository(Stage)
16
+ private readonly stageRepository: Repository<Stage>,
17
+ private readonly dataSource: DataSource,
18
+ ) {}
19
+
20
+ async getAllStage(stage_group_id: number, organization_id: number) {
21
+ if (!stage_group_id) {
22
+ throw new BadRequestException('stage_group_id is required');
23
+ }
24
+
25
+ // 1. Get stage group name
26
+ const stageGroup = (await this.dataSource.manager.findOne(
27
+ 'frm_wf_stage_group',
28
+ {
29
+ where: { id: stage_group_id },
30
+ },
31
+ )) as StageGroup;
32
+
33
+ if (!stageGroup) {
34
+ throw new NotFoundException('Stage group not found');
35
+ }
36
+
37
+ const stageGroupName = stageGroup.name;
38
+
39
+ // 2. Get all stages under that group
40
+ const result = await this.stageRepository.find({
41
+ where: {
42
+ stage_group_id,
43
+ organization_id,
44
+ },
45
+ order: {
46
+ sequence: 'ASC',
47
+ },
48
+ });
49
+
50
+ if (!result || result.length === 0) {
51
+ return [];
52
+ }
53
+
54
+ // 3. Modify stage names
55
+ const updatedStages = result.map((stage) => ({
56
+ ...stage,
57
+ name: stage.name,
58
+ full_name: `${stageGroupName} - ${stage.name}`,
59
+ }));
60
+
61
+ return updatedStages;
62
+ }
63
+
64
+ async getStageGroupsWithStagesByWorkflowId(
65
+ stage_group_id: number,
66
+ organization_id: number,
67
+ ): Promise<any[]> {
68
+ if (!stage_group_id) {
69
+ throw new BadRequestException('stage_group_id is required');
70
+ }
71
+
72
+ // 1. Find the stage group to get workflow_id
73
+ const stageGroup = (await this.dataSource.manager.findOne(
74
+ 'frm_wf_stage_group',
75
+ {
76
+ where: { id: stage_group_id, organization_id },
77
+ },
78
+ )) as StageGroup;
79
+
80
+ if (!stageGroup) {
81
+ return [];
82
+ }
83
+
84
+ // 2. Fetch all groups + stages in one query
85
+ const rows = await this.dataSource.query(
86
+ `
87
+ SELECT
88
+ g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
89
+ s.*
90
+ FROM frm_wf_stage_group g
91
+ INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
92
+ WHERE g.workflow_id = ? AND g.organization_id = ? AND g.id = ?
93
+ ORDER BY g.id, s.id
94
+ `,
95
+ [stageGroup.workflow_id, organization_id, stage_group_id],
96
+ );
97
+ // const rows2 = await this.dataSource.query(
98
+ // `
99
+ // SELECT
100
+ // g.id as stage_group_id, g.name as stage_group_name, g.workflow_id,
101
+ // s.*
102
+ // FROM frm_wf_stage_group g
103
+ // INNER JOIN frm_wf_stage s ON s.stage_group_id = g.id
104
+ // WHERE g.workflow_id = ? AND g.organization_id = ?
105
+ // ORDER BY g.id, s.id
106
+ // `,
107
+ // [stageGroup.workflow_id, organization_id],
108
+ // );
109
+
110
+ // console.log(rows2, '-----------INNER JOIN----------');
111
+
112
+ if (!rows || rows.length === 0) {
113
+ return [];
114
+ }
115
+
116
+ return rows;
117
+ }
118
+
119
+ async getAllStageGroupAndStageByStageMovement(
120
+ stage_group_id: number,
121
+ organization_id: number,
122
+ ) {
123
+ // 1. Find the current stage group
124
+ const currentStageGroup = await this.dataSource.manager.findOne<any>(
125
+ 'frm_wf_stage_group',
126
+ { where: { id: stage_group_id, organization_id } },
127
+ );
128
+
129
+ if (!currentStageGroup) {
130
+ return [];
131
+ }
132
+
133
+ // 2. Get all stage groups in the same workflow with sequence <= current
134
+ const stageGroups = await this.dataSource.manager.find<any>(
135
+ 'frm_wf_stage_group',
136
+ {
137
+ where: {
138
+ workflow_id: currentStageGroup.workflow_id,
139
+ organization_id,
140
+ },
141
+ order: { sequence: 'ASC' },
142
+ },
143
+ );
144
+
145
+ // Filter only groups with sequence <= current
146
+ const eligibleGroups = stageGroups.filter(
147
+ (g) => g.sequence <= currentStageGroup.sequence,
148
+ );
149
+
150
+ const flatResults: any[] = [];
151
+
152
+ // 3. For each eligible group, fetch its stages
153
+ for (const group of eligibleGroups) {
154
+ const stages = await this.stageRepository.find({
155
+ where: { stage_group_id: group.id, organization_id },
156
+ order: { sequence: 'ASC' },
157
+ });
158
+
159
+ if (!stages || stages.length === 0) continue;
160
+
161
+ // 4. Flatten into result with full_name
162
+ for (const stage of stages) {
163
+ flatResults.push({
164
+ ...stage,
165
+ full_name: `${group.name} - ${stage.name}`,
166
+ });
167
+ }
168
+ }
169
+
170
+ return flatResults;
171
+ }
172
+ }
@@ -1,134 +1,134 @@
1
- import { BadRequestException, Injectable } from '@nestjs/common';
2
- import { InjectRepository } from '@nestjs/typeorm';
3
- import { TaskDataEntity } from '../entity/task-data.entity';
4
- import { DataSource, Repository } from 'typeorm';
5
- import { EntityDynamicService } from 'src/module/meta/service/entity-dynamic.service';
6
-
7
- @Injectable()
8
- export class TaskRepository {
9
- constructor(
10
- @InjectRepository(TaskDataEntity)
11
- private readonly TaskRepository: Repository<TaskDataEntity>,
12
- private readonly entityDynamicService: EntityDynamicService,
13
- private readonly dataSource: DataSource,
14
- ) {}
15
-
16
- async getAllTaskByUserIdAndStageId(condition) {
17
- const result = await this.TaskRepository.find({
18
- where: {
19
- ...condition,
20
- },
21
- });
22
-
23
- return result;
24
- }
25
-
26
- async saveActionDataInTask(
27
- action: any,
28
- loggedInUser,
29
- mapped_entity_id: number,
30
- mapped_entity_type: string,
31
- ): Promise<any> {
32
- if (!action?.length) return;
33
-
34
- const todoListMasterItemId = await this.dataSource.query(
35
- `SELECT id FROM frm_list_master_items WHERE code = 'in_progress' and organization_id = $1 and listtype = 'TKST' LIMIT 1;`,
36
- [loggedInUser.organization_id],
37
- );
38
-
39
- const leadData = await this.dataSource.query(
40
- `SELECT * FROM crm_lead WHERE id = $1`,
41
- [mapped_entity_id],
42
- );
43
-
44
- // Find the action with the lowest sequence
45
-
46
- if (action.length > 0) {
47
- for (const act of action) {
48
- // search that is_mandatory is true or not in list_master_items for the given organization
49
-
50
- const is_mandatory = await this.dataSource.query(
51
- `SELECT code FROM frm_list_master_items WHERE id = $1 and organization_id = $2 LIMIT 1;`,
52
- [act.action_requirement, loggedInUser.organization_id],
53
- );
54
-
55
- const now = new Date();
56
- const dueDateTime = new Date(now);
57
- dueDateTime.setDate(dueDateTime.getDate() + 2);
58
-
59
- // Force conversion to IST
60
- const istFormatterDate = new Intl.DateTimeFormat('en-CA', {
61
- timeZone: 'Asia/Kolkata',
62
- });
63
- const istFormatterTime = new Intl.DateTimeFormat('en-US', {
64
- timeZone: 'Asia/Kolkata',
65
- hour: '2-digit',
66
- minute: '2-digit',
67
- hour12: true,
68
- });
69
-
70
- const due_date = istFormatterDate.format(dueDateTime); // YYYY-MM-DD in IST
71
- const due_time = istFormatterTime.format(dueDateTime); // e.g. "03:14 AM"
72
-
73
- console.log({ due_date, due_time });
74
-
75
- const taskCode = await this.entityDynamicService.getCode(
76
- 'TASK',
77
- loggedInUser,
78
- );
79
-
80
- const taskData = this.TaskRepository.create({
81
- stage_id: act.stage_id,
82
- user_id: loggedInUser.id,
83
- action_id: act.id,
84
- organization_id: loggedInUser.organization_id,
85
- level_type: loggedInUser.level_type,
86
- level_id: loggedInUser.level_id,
87
- name: act.name,
88
- sequence: act.sequence,
89
- is_mandatory: is_mandatory[0]?.code === 'mandatory' ? true : false,
90
- mapped_entity_id,
91
- mapped_entity_type,
92
- due_date,
93
- due_time,
94
- is_system: true,
95
- status: todoListMasterItemId[0]?.id,
96
- category: act?.action_category_code,
97
- task_owner: leadData[0]?.lead_owner,
98
- code: taskCode,
99
- });
100
- await this.TaskRepository.save(taskData);
101
- }
102
- }
103
- }
104
-
105
- // update task status
106
- async updateTaskStatus(
107
- loggedInUser,
108
- mapped_entity_type,
109
- mapped_entity_id,
110
- stage_id,
111
- action_id,
112
- ): Promise<any> {
113
- const task = await this.TaskRepository.findOneBy({
114
- action_id,
115
- mapped_entity_type,
116
- mapped_entity_id,
117
- stage_id,
118
- });
119
-
120
- if (!task) return;
121
-
122
- const completedListMasterItemId = await this.dataSource.query(
123
- `SELECT id FROM frm_list_master_items WHERE code = 'completed' and organization_id = $1 and listtype = 'TKST' LIMIT 1;`,
124
- [loggedInUser.organization_id],
125
- );
126
-
127
- task.modified_by = loggedInUser.id;
128
- task.modified_date = new Date();
129
- task.is_done = true;
130
- task.status = completedListMasterItemId[0]?.id;
131
-
132
- await this.TaskRepository.update(task.id, task);
133
- }
134
- }
1
+ import { BadRequestException, Injectable } from '@nestjs/common';
2
+ import { InjectRepository } from '@nestjs/typeorm';
3
+ import { TaskDataEntity } from '../entity/task-data.entity';
4
+ import { DataSource, Repository } from 'typeorm';
5
+ import { EntityDynamicService } from 'src/module/meta/service/entity-dynamic.service';
6
+
7
+ @Injectable()
8
+ export class TaskRepository {
9
+ constructor(
10
+ @InjectRepository(TaskDataEntity)
11
+ private readonly TaskRepository: Repository<TaskDataEntity>,
12
+ private readonly entityDynamicService: EntityDynamicService,
13
+ private readonly dataSource: DataSource,
14
+ ) {}
15
+
16
+ async getAllTaskByUserIdAndStageId(condition) {
17
+ const result = await this.TaskRepository.find({
18
+ where: {
19
+ ...condition,
20
+ },
21
+ });
22
+
23
+ return result;
24
+ }
25
+
26
+ async saveActionDataInTask(
27
+ action: any,
28
+ loggedInUser,
29
+ mapped_entity_id: number,
30
+ mapped_entity_type: string,
31
+ ): Promise<any> {
32
+ if (!action?.length) return;
33
+
34
+ const todoListMasterItemId = await this.dataSource.query(
35
+ `SELECT id FROM frm_list_master_items WHERE code = 'in_progress' and organization_id = ? and listtype = 'TKST' LIMIT 1;`,
36
+ [loggedInUser.organization_id],
37
+ );
38
+
39
+ const leadData = await this.dataSource.query(
40
+ `SELECT * FROM crm_lead WHERE id = ?`,
41
+ [mapped_entity_id],
42
+ );
43
+
44
+ // Find the action with the lowest sequence
45
+
46
+ if (action.length > 0) {
47
+ for (const act of action) {
48
+ // search that is_mandatory is true or not in list_master_items for the given organization
49
+
50
+ const is_mandatory = await this.dataSource.query(
51
+ `SELECT code FROM frm_list_master_items WHERE id = ? and organization_id = ? LIMIT 1;`,
52
+ [act.action_requirement, loggedInUser.organization_id],
53
+ );
54
+
55
+ const now = new Date();
56
+ const dueDateTime = new Date(now);
57
+ dueDateTime.setDate(dueDateTime.getDate() + 2);
58
+
59
+ // Force conversion to IST
60
+ const istFormatterDate = new Intl.DateTimeFormat('en-CA', {
61
+ timeZone: 'Asia/Kolkata',
62
+ });
63
+ const istFormatterTime = new Intl.DateTimeFormat('en-US', {
64
+ timeZone: 'Asia/Kolkata',
65
+ hour: '2-digit',
66
+ minute: '2-digit',
67
+ hour12: true,
68
+ });
69
+
70
+ const due_date = istFormatterDate.format(dueDateTime); // YYYY-MM-DD in IST
71
+ const due_time = istFormatterTime.format(dueDateTime); // e.g. "03:14 AM"
72
+
73
+ console.log({ due_date, due_time });
74
+
75
+ const taskCode = await this.entityDynamicService.getCode(
76
+ 'TASK',
77
+ loggedInUser,
78
+ );
79
+
80
+ const taskData = this.TaskRepository.create({
81
+ stage_id: act.stage_id,
82
+ user_id: loggedInUser.id,
83
+ action_id: act.id,
84
+ organization_id: loggedInUser.organization_id,
85
+ level_type: loggedInUser.level_type,
86
+ level_id: loggedInUser.level_id,
87
+ name: act.name,
88
+ sequence: act.sequence,
89
+ is_mandatory: is_mandatory[0]?.code === 'mandatory' ? true : false,
90
+ mapped_entity_id,
91
+ mapped_entity_type,
92
+ due_date,
93
+ due_time,
94
+ is_system: true,
95
+ status: todoListMasterItemId[0]?.id,
96
+ category: act?.action_category_code,
97
+ task_owner: leadData[0]?.lead_owner,
98
+ code: taskCode,
99
+ });
100
+ await this.TaskRepository.save(taskData);
101
+ }
102
+ }
103
+ }
104
+
105
+ // update task status
106
+ async updateTaskStatus(
107
+ loggedInUser,
108
+ mapped_entity_type,
109
+ mapped_entity_id,
110
+ stage_id,
111
+ action_id,
112
+ ): Promise<any> {
113
+ const task = await this.TaskRepository.findOneBy({
114
+ action_id,
115
+ mapped_entity_type,
116
+ mapped_entity_id,
117
+ stage_id,
118
+ });
119
+
120
+ if (!task) return;
121
+
122
+ const completedListMasterItemId = await this.dataSource.query(
123
+ `SELECT id FROM frm_list_master_items WHERE code = 'completed' and organization_id = ? and listtype = 'TKST' LIMIT 1;`,
124
+ [loggedInUser.organization_id],
125
+ );
126
+
127
+ task.modified_by = loggedInUser.id;
128
+ task.modified_date = new Date();
129
+ task.is_done = true;
130
+ task.status = completedListMasterItemId[0]?.id;
131
+
132
+ await this.TaskRepository.update(task.id, task);
133
+ }
134
+ }