rez_core 6.6.6 → 7.0.0

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 (1048) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  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 +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/.prettierrc +3 -3
  15. package/README.md +99 -99
  16. package/dist/app.controller.js.map +1 -1
  17. package/dist/app.module.js +7 -3
  18. package/dist/app.module.js.map +1 -1
  19. package/dist/constant/attribute.constant.d.ts +8 -0
  20. package/dist/constant/attribute.constant.js +14 -0
  21. package/dist/constant/attribute.constant.js.map +1 -0
  22. package/dist/constant/db-data-type.constant.d.ts +33 -0
  23. package/dist/constant/db-data-type.constant.js +119 -0
  24. package/dist/constant/db-data-type.constant.js.map +1 -0
  25. package/dist/constant/entity.constant.d.ts +4 -0
  26. package/dist/constant/entity.constant.js +9 -0
  27. package/dist/constant/entity.constant.js.map +1 -0
  28. package/dist/constant/status.constant.d.ts +4 -0
  29. package/dist/constant/status.constant.js +9 -0
  30. package/dist/constant/status.constant.js.map +1 -0
  31. package/dist/core.module.js +66 -38
  32. package/dist/core.module.js.map +1 -1
  33. package/dist/module/app_master/app-master.module.d.ts +2 -0
  34. package/dist/module/app_master/app-master.module.js +28 -0
  35. package/dist/module/app_master/app-master.module.js.map +1 -0
  36. package/dist/module/{meta → app_master}/controller/app-master.controller.d.ts +1 -0
  37. package/dist/module/{meta → app_master}/controller/app-master.controller.js +20 -1
  38. package/dist/module/app_master/controller/app-master.controller.js.map +1 -0
  39. package/dist/module/app_master/entity/app-master.entity.d.ts +17 -0
  40. package/dist/module/{meta → app_master}/entity/app-master.entity.js +30 -12
  41. package/dist/module/app_master/entity/app-master.entity.js.map +1 -0
  42. package/dist/module/{meta → app_master}/repository/app-master.repository.d.ts +4 -2
  43. package/dist/module/{meta → app_master}/repository/app-master.repository.js +17 -4
  44. package/dist/module/app_master/repository/app-master.repository.js.map +1 -0
  45. package/dist/module/{meta → app_master}/service/app-master.service.d.ts +7 -3
  46. package/dist/module/{meta → app_master}/service/app-master.service.js +12 -5
  47. package/dist/module/app_master/service/app-master.service.js.map +1 -0
  48. package/dist/module/auth/auth.module.d.ts +6 -1
  49. package/dist/module/auth/auth.module.js +28 -1
  50. package/dist/module/auth/auth.module.js.map +1 -1
  51. package/dist/module/auth/guards/role.guard.js +3 -3
  52. package/dist/module/auth/strategies/jwt.strategy.d.ts +6 -2
  53. package/dist/module/auth/strategies/jwt.strategy.js +18 -4
  54. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  55. package/dist/module/dashboard/controller/dashboard.controller.d.ts +6 -6
  56. package/dist/module/dashboard/dashboard.module.js +1 -1
  57. package/dist/module/dashboard/dashboard.module.js.map +1 -1
  58. package/dist/module/dashboard/entity/dashboard_page_data.entity.d.ts +0 -1
  59. package/dist/module/dashboard/entity/dashboard_page_data.entity.js +1 -6
  60. package/dist/module/dashboard/entity/dashboard_page_data.entity.js.map +1 -1
  61. package/dist/module/dashboard/entity/widget_master.entity.d.ts +0 -1
  62. package/dist/module/dashboard/entity/widget_master.entity.js +1 -6
  63. package/dist/module/dashboard/entity/widget_master.entity.js.map +1 -1
  64. package/dist/module/dashboard/service/dashboard.service.d.ts +6 -6
  65. package/dist/module/dashboard/service/dashboard.service.js +1 -2
  66. package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
  67. package/dist/module/eav/controller/eav.controller.d.ts +21 -0
  68. package/dist/module/eav/controller/eav.controller.js +127 -0
  69. package/dist/module/eav/controller/eav.controller.js.map +1 -0
  70. package/dist/module/eav/dto/eav-operation.dto.d.ts +20 -0
  71. package/dist/module/eav/dto/eav-operation.dto.js +75 -0
  72. package/dist/module/eav/dto/eav-operation.dto.js.map +1 -0
  73. package/dist/module/eav/eav.module.d.ts +2 -0
  74. package/dist/module/eav/eav.module.js +84 -0
  75. package/dist/module/eav/eav.module.js.map +1 -0
  76. package/dist/module/eav/entity/eav-boolean.entity.d.ts +9 -0
  77. package/dist/module/eav/entity/eav-boolean.entity.js +48 -0
  78. package/dist/module/eav/entity/eav-boolean.entity.js.map +1 -0
  79. package/dist/module/eav/entity/eav-date.entity.d.ts +9 -0
  80. package/dist/module/eav/entity/eav-date.entity.js +48 -0
  81. package/dist/module/eav/entity/eav-date.entity.js.map +1 -0
  82. package/dist/module/eav/entity/eav-decimal.entity.d.ts +9 -0
  83. package/dist/module/eav/entity/eav-decimal.entity.js +48 -0
  84. package/dist/module/eav/entity/eav-decimal.entity.js.map +1 -0
  85. package/dist/module/eav/entity/eav-int.entity.d.ts +9 -0
  86. package/dist/module/eav/entity/eav-int.entity.js +48 -0
  87. package/dist/module/eav/entity/eav-int.entity.js.map +1 -0
  88. package/dist/module/eav/entity/eav-json.entity.d.ts +9 -0
  89. package/dist/module/eav/entity/eav-json.entity.js +48 -0
  90. package/dist/module/eav/entity/eav-json.entity.js.map +1 -0
  91. package/dist/module/eav/entity/eav-text.entity.d.ts +9 -0
  92. package/dist/module/eav/entity/eav-text.entity.js +48 -0
  93. package/dist/module/eav/entity/eav-text.entity.js.map +1 -0
  94. package/dist/module/eav/entity/eav-time.entity.d.ts +9 -0
  95. package/dist/module/eav/entity/eav-time.entity.js +48 -0
  96. package/dist/module/eav/entity/eav-time.entity.js.map +1 -0
  97. package/dist/module/eav/entity/eav-timestamp.entity.d.ts +9 -0
  98. package/dist/module/eav/entity/eav-timestamp.entity.js +48 -0
  99. package/dist/module/eav/entity/eav-timestamp.entity.js.map +1 -0
  100. package/dist/module/eav/entity/eav-varchar.entity.d.ts +9 -0
  101. package/dist/module/eav/entity/eav-varchar.entity.js +48 -0
  102. package/dist/module/eav/entity/eav-varchar.entity.js.map +1 -0
  103. package/dist/module/eav/interface/eav-strategy.interface.d.ts +8 -0
  104. package/dist/module/eav/interface/eav-strategy.interface.js +3 -0
  105. package/dist/module/eav/interface/eav-strategy.interface.js.map +1 -0
  106. package/dist/module/eav/repository/eav-boolean.repository.d.ts +13 -0
  107. package/dist/module/eav/repository/eav-boolean.repository.js +57 -0
  108. package/dist/module/eav/repository/eav-boolean.repository.js.map +1 -0
  109. package/dist/module/eav/repository/eav-date.repository.d.ts +13 -0
  110. package/dist/module/eav/repository/eav-date.repository.js +57 -0
  111. package/dist/module/eav/repository/eav-date.repository.js.map +1 -0
  112. package/dist/module/eav/repository/eav-decimal.repository.d.ts +13 -0
  113. package/dist/module/eav/repository/eav-decimal.repository.js +57 -0
  114. package/dist/module/eav/repository/eav-decimal.repository.js.map +1 -0
  115. package/dist/module/eav/repository/eav-int.repository.d.ts +13 -0
  116. package/dist/module/eav/repository/eav-int.repository.js +57 -0
  117. package/dist/module/eav/repository/eav-int.repository.js.map +1 -0
  118. package/dist/module/eav/repository/eav-json.repository.d.ts +13 -0
  119. package/dist/module/eav/repository/eav-json.repository.js +57 -0
  120. package/dist/module/eav/repository/eav-json.repository.js.map +1 -0
  121. package/dist/module/eav/repository/eav-text.repository.d.ts +13 -0
  122. package/dist/module/eav/repository/eav-text.repository.js +57 -0
  123. package/dist/module/eav/repository/eav-text.repository.js.map +1 -0
  124. package/dist/module/eav/repository/eav-time.repository.d.ts +13 -0
  125. package/dist/module/eav/repository/eav-time.repository.js +57 -0
  126. package/dist/module/eav/repository/eav-time.repository.js.map +1 -0
  127. package/dist/module/eav/repository/eav-timestamp.repository.d.ts +13 -0
  128. package/dist/module/eav/repository/eav-timestamp.repository.js +57 -0
  129. package/dist/module/eav/repository/eav-timestamp.repository.js.map +1 -0
  130. package/dist/module/eav/repository/eav-varchar.repository.d.ts +13 -0
  131. package/dist/module/eav/repository/eav-varchar.repository.js +57 -0
  132. package/dist/module/eav/repository/eav-varchar.repository.js.map +1 -0
  133. package/dist/module/eav/service/eav-boolean.service.d.ts +12 -0
  134. package/dist/module/eav/service/eav-boolean.service.js +59 -0
  135. package/dist/module/eav/service/eav-boolean.service.js.map +1 -0
  136. package/dist/module/eav/service/eav-date.service.d.ts +12 -0
  137. package/dist/module/eav/service/eav-date.service.js +59 -0
  138. package/dist/module/eav/service/eav-date.service.js.map +1 -0
  139. package/dist/module/eav/service/eav-decimal.service.d.ts +12 -0
  140. package/dist/module/eav/service/eav-decimal.service.js +59 -0
  141. package/dist/module/eav/service/eav-decimal.service.js.map +1 -0
  142. package/dist/module/eav/service/eav-factory.service.d.ts +26 -0
  143. package/dist/module/eav/service/eav-factory.service.js +81 -0
  144. package/dist/module/eav/service/eav-factory.service.js.map +1 -0
  145. package/dist/module/eav/service/eav-int.service.d.ts +12 -0
  146. package/dist/module/eav/service/eav-int.service.js +59 -0
  147. package/dist/module/eav/service/eav-int.service.js.map +1 -0
  148. package/dist/module/eav/service/eav-json.service.d.ts +12 -0
  149. package/dist/module/eav/service/eav-json.service.js +59 -0
  150. package/dist/module/eav/service/eav-json.service.js.map +1 -0
  151. package/dist/module/eav/service/eav-text.service.d.ts +12 -0
  152. package/dist/module/eav/service/eav-text.service.js +59 -0
  153. package/dist/module/eav/service/eav-text.service.js.map +1 -0
  154. package/dist/module/eav/service/eav-time.service.d.ts +12 -0
  155. package/dist/module/eav/service/eav-time.service.js +59 -0
  156. package/dist/module/eav/service/eav-time.service.js.map +1 -0
  157. package/dist/module/eav/service/eav-timestamp.service.d.ts +12 -0
  158. package/dist/module/eav/service/eav-timestamp.service.js +59 -0
  159. package/dist/module/eav/service/eav-timestamp.service.js.map +1 -0
  160. package/dist/module/eav/service/eav-varchar.service.d.ts +12 -0
  161. package/dist/module/eav/service/eav-varchar.service.js +59 -0
  162. package/dist/module/eav/service/eav-varchar.service.js.map +1 -0
  163. package/dist/module/eav/service/eav.service.d.ts +14 -0
  164. package/dist/module/eav/service/eav.service.js +65 -0
  165. package/dist/module/eav/service/eav.service.js.map +1 -0
  166. package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
  167. package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
  168. package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
  169. package/dist/module/enterprise/controller/meta.controller.d.ts +9 -0
  170. package/dist/module/enterprise/controller/meta.controller.js +43 -0
  171. package/dist/module/enterprise/controller/meta.controller.js.map +1 -0
  172. package/dist/module/enterprise/controller/organization.controller.d.ts +12 -4
  173. package/dist/module/enterprise/controller/organization.controller.js +68 -8
  174. package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
  175. package/dist/module/enterprise/enterprise.module.js +10 -15
  176. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  177. package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
  178. package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
  179. package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
  180. package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +6 -1
  181. package/dist/module/enterprise/entity/organization-app-mapping.entity.js +21 -4
  182. package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
  183. package/dist/module/enterprise/entity/organization.entity.d.ts +3 -17
  184. package/dist/module/enterprise/entity/organization.entity.js +11 -73
  185. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  186. package/dist/module/enterprise/repository/enterprise.repository.d.ts +4 -2
  187. package/dist/module/enterprise/repository/enterprise.repository.js +19 -4
  188. package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
  189. package/dist/module/enterprise/repository/school.repository.js +8 -8
  190. package/dist/module/enterprise/repository/school.repository.js.map +1 -1
  191. package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
  192. package/dist/module/enterprise/service/brand-profile.service.js +1 -0
  193. package/dist/module/enterprise/service/brand-profile.service.js.map +1 -0
  194. package/dist/module/enterprise/service/brand.service.d.ts +0 -3
  195. package/dist/module/enterprise/service/brand.service.js +0 -17
  196. package/dist/module/enterprise/service/brand.service.js.map +1 -1
  197. package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
  198. package/dist/module/enterprise/service/enterprise.service.js +6 -4
  199. package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
  200. package/dist/module/enterprise/service/organization.service.d.ts +13 -5
  201. package/dist/module/enterprise/service/organization.service.js +177 -29
  202. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  203. package/dist/module/enterprise/service/populate-meta.service.d.ts +9 -0
  204. package/dist/module/{meta → enterprise}/service/populate-meta.service.js +24 -43
  205. package/dist/module/enterprise/service/populate-meta.service.js.map +1 -0
  206. package/dist/module/enterprise/service/school.service.d.ts +0 -0
  207. package/dist/module/enterprise/service/school.service.js +1 -0
  208. package/dist/module/enterprise/service/school.service.js.map +1 -0
  209. package/dist/module/entity_json/controller/entity_json.controller.d.ts +2 -5
  210. package/dist/module/entity_json/controller/entity_json.controller.js +7 -21
  211. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  212. package/dist/module/entity_json/service/entity_json.service.d.ts +10 -2
  213. package/dist/module/entity_json/service/entity_json.service.js +102 -95
  214. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  215. package/dist/module/export/service/export.service.js +5 -0
  216. package/dist/module/export/service/export.service.js.map +1 -1
  217. package/dist/module/filter/controller/filter.controller.d.ts +1 -12
  218. package/dist/module/filter/controller/filter.controller.js +3 -2
  219. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  220. package/dist/module/filter/dto/filter-request.dto.d.ts +1 -0
  221. package/dist/module/filter/entity/saved-filter-detail.entity.d.ts +0 -1
  222. package/dist/module/filter/entity/saved-filter-detail.entity.js +1 -7
  223. package/dist/module/filter/entity/saved-filter-detail.entity.js.map +1 -1
  224. package/dist/module/filter/entity/saved-filter-master.entity.d.ts +0 -1
  225. package/dist/module/filter/entity/saved-filter-master.entity.js +1 -7
  226. package/dist/module/filter/entity/saved-filter-master.entity.js.map +1 -1
  227. package/dist/module/filter/filter.module.js +2 -11
  228. package/dist/module/filter/filter.module.js.map +1 -1
  229. package/dist/module/filter/repository/saved-filter.repository.js +2 -4
  230. package/dist/module/filter/repository/saved-filter.repository.js.map +1 -1
  231. package/dist/module/filter/service/filter.service.d.ts +5 -38
  232. package/dist/module/filter/service/filter.service.js +134 -88
  233. package/dist/module/filter/service/filter.service.js.map +1 -1
  234. package/dist/module/filter/service/saved-filter.service.d.ts +2 -3
  235. package/dist/module/filter/service/saved-filter.service.js +18 -15
  236. package/dist/module/filter/service/saved-filter.service.js.map +1 -1
  237. package/dist/module/integration/examples/usage.example.js +9 -9
  238. package/dist/module/integration/service/integration.service.d.ts +1 -6
  239. package/dist/module/integration/service/integration.service.js +4 -18
  240. package/dist/module/integration/service/integration.service.js.map +1 -1
  241. package/dist/module/integration/service/oauth.service.js +0 -2
  242. package/dist/module/integration/service/oauth.service.js.map +1 -1
  243. package/dist/module/integration/service/wrapper.service.js +0 -1
  244. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  245. package/dist/module/integration/strategies/email/gmail-api.strategy.js +7 -23
  246. package/dist/module/integration/strategies/email/gmail-api.strategy.js.map +1 -1
  247. package/dist/module/integration/strategies/email/sendgrid-api.strategy.js +5 -8
  248. package/dist/module/integration/strategies/email/sendgrid-api.strategy.js.map +1 -1
  249. package/dist/module/layout/controller/layout.controller.d.ts +1 -3
  250. package/dist/module/layout/controller/layout.controller.js +3 -7
  251. package/dist/module/layout/controller/layout.controller.js.map +1 -1
  252. package/dist/module/layout/entity/header-items.entity.js +1 -1
  253. package/dist/module/layout/entity/header-section.entity.d.ts +0 -2
  254. package/dist/module/layout/entity/header-section.entity.js +1 -9
  255. package/dist/module/layout/entity/header-section.entity.js.map +1 -1
  256. package/dist/module/layout/layout.module.js +1 -2
  257. package/dist/module/layout/layout.module.js.map +1 -1
  258. package/dist/module/layout/repository/header-section.repository.d.ts +0 -1
  259. package/dist/module/layout/repository/header-section.repository.js +0 -5
  260. package/dist/module/layout/repository/header-section.repository.js.map +1 -1
  261. package/dist/module/layout/service/header-section.service.d.ts +1 -1
  262. package/dist/module/layout/service/header-section.service.js +1 -1
  263. package/dist/module/layout/service/header-section.service.js.map +1 -1
  264. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +1 -0
  265. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +2 -2
  266. package/dist/module/linked_attributes/service/linked_attributes.service.js +3 -4
  267. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  268. package/dist/module/listmaster/controller/list-master.controller.d.ts +0 -1
  269. package/dist/module/listmaster/controller/list-master.controller.js +0 -19
  270. package/dist/module/listmaster/controller/list-master.controller.js.map +1 -1
  271. package/dist/module/listmaster/entity/list-master-items.entity.d.ts +0 -4
  272. package/dist/module/listmaster/entity/list-master-items.entity.js +2 -20
  273. package/dist/module/listmaster/entity/list-master-items.entity.js.map +1 -1
  274. package/dist/module/listmaster/entity/list-master.entity.d.ts +1 -4
  275. package/dist/module/listmaster/entity/list-master.entity.js +5 -19
  276. package/dist/module/listmaster/entity/list-master.entity.js.map +1 -1
  277. package/dist/module/listmaster/repository/list-master-items.repository.d.ts +2 -2
  278. package/dist/module/listmaster/repository/list-master-items.repository.js +68 -25
  279. package/dist/module/listmaster/repository/list-master-items.repository.js.map +1 -1
  280. package/dist/module/listmaster/service/list-master-item.service.js +129 -48
  281. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  282. package/dist/module/listmaster/service/list-master.service.d.ts +16 -12
  283. package/dist/module/listmaster/service/list-master.service.js +228 -135
  284. package/dist/module/listmaster/service/list-master.service.js.map +1 -1
  285. package/dist/module/mapper/entity/field-lovs.entity.d.ts +0 -1
  286. package/dist/module/mapper/entity/field-lovs.entity.js +1 -6
  287. package/dist/module/mapper/entity/field-lovs.entity.js.map +1 -1
  288. package/dist/module/mapper/entity/field-mapper.entity.d.ts +0 -1
  289. package/dist/module/mapper/entity/field-mapper.entity.js +1 -6
  290. package/dist/module/mapper/entity/field-mapper.entity.js.map +1 -1
  291. package/dist/module/mapper/entity/mapper.entity.d.ts +0 -2
  292. package/dist/module/mapper/entity/mapper.entity.js +1 -10
  293. package/dist/module/mapper/entity/mapper.entity.js.map +1 -1
  294. package/dist/module/mapper/service/field-mapper.service.js +0 -1
  295. package/dist/module/mapper/service/field-mapper.service.js.map +1 -1
  296. package/dist/module/master/controller/master.controller.d.ts +1 -3
  297. package/dist/module/master/controller/master.controller.js +4 -6
  298. package/dist/module/master/controller/master.controller.js.map +1 -1
  299. package/dist/module/master/service/master.service.d.ts +1 -1
  300. package/dist/module/master/service/master.service.js +30 -44
  301. package/dist/module/master/service/master.service.js.map +1 -1
  302. package/dist/module/meta/controller/attribute-master.controller.d.ts +3 -8
  303. package/dist/module/meta/controller/attribute-master.controller.js +5 -19
  304. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  305. package/dist/module/meta/controller/entity-dynamic.controller.js +6 -3
  306. package/dist/module/meta/controller/entity-dynamic.controller.js.map +1 -1
  307. package/dist/module/meta/controller/entity-master.controller.js +1 -0
  308. package/dist/module/meta/controller/entity-master.controller.js.map +1 -1
  309. package/dist/module/meta/controller/entity.controller.js +3 -3
  310. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  311. package/dist/module/meta/controller/entity.public.controller.js +1 -0
  312. package/dist/module/meta/controller/entity.public.controller.js.map +1 -1
  313. package/dist/module/meta/controller/media.controller.d.ts +0 -6
  314. package/dist/module/meta/controller/media.controller.js +0 -27
  315. package/dist/module/meta/controller/media.controller.js.map +1 -1
  316. package/dist/module/meta/controller/meta.controller.d.ts +1 -6
  317. package/dist/module/meta/controller/meta.controller.js +2 -19
  318. package/dist/module/meta/controller/meta.controller.js.map +1 -1
  319. package/dist/module/meta/entity/attribute-master.entity.d.ts +12 -14
  320. package/dist/module/meta/entity/attribute-master.entity.js +41 -77
  321. package/dist/module/meta/entity/attribute-master.entity.js.map +1 -1
  322. package/dist/module/meta/entity/base-entity.entity.d.ts +6 -7
  323. package/dist/module/meta/entity/base-entity.entity.js +24 -47
  324. package/dist/module/meta/entity/base-entity.entity.js.map +1 -1
  325. package/dist/module/meta/entity/dynamic.entity.d.ts +3 -0
  326. package/dist/module/meta/entity/dynamic.entity.js +18 -0
  327. package/dist/module/meta/entity/dynamic.entity.js.map +1 -0
  328. package/dist/module/meta/entity/entity-master.entity.d.ts +6 -9
  329. package/dist/module/meta/entity/entity-master.entity.js +21 -66
  330. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  331. package/dist/module/meta/entity/entity-relation-data.entity.d.ts +0 -1
  332. package/dist/module/meta/entity/entity-relation-data.entity.js +1 -7
  333. package/dist/module/meta/entity/entity-relation-data.entity.js.map +1 -1
  334. package/dist/module/meta/entity/entity-relation.entity.d.ts +0 -1
  335. package/dist/module/meta/entity/entity-relation.entity.js +1 -7
  336. package/dist/module/meta/entity/entity-relation.entity.js.map +1 -1
  337. package/dist/module/meta/entity/entity-table-column.entity.d.ts +0 -1
  338. package/dist/module/meta/entity/entity-table-column.entity.js +1 -7
  339. package/dist/module/meta/entity/entity-table-column.entity.js.map +1 -1
  340. package/dist/module/meta/entity/entity-table.entity.d.ts +0 -1
  341. package/dist/module/meta/entity/entity-table.entity.js +1 -7
  342. package/dist/module/meta/entity/entity-table.entity.js.map +1 -1
  343. package/dist/module/meta/entity/media-data.entity.d.ts +0 -2
  344. package/dist/module/meta/entity/media-data.entity.js +0 -8
  345. package/dist/module/meta/entity/media-data.entity.js.map +1 -1
  346. package/dist/module/meta/entity/preference.entity.d.ts +0 -1
  347. package/dist/module/meta/entity/preference.entity.js +1 -7
  348. package/dist/module/meta/entity/preference.entity.js.map +1 -1
  349. package/dist/module/meta/entity/view-master.entity.d.ts +0 -1
  350. package/dist/module/meta/entity/view-master.entity.js +1 -7
  351. package/dist/module/meta/entity/view-master.entity.js.map +1 -1
  352. package/dist/module/meta/entity.module.js +11 -19
  353. package/dist/module/meta/entity.module.js.map +1 -1
  354. package/dist/module/meta/repository/attribute-master.repository.d.ts +8 -2
  355. package/dist/module/meta/repository/attribute-master.repository.js +41 -15
  356. package/dist/module/meta/repository/attribute-master.repository.js.map +1 -1
  357. package/dist/module/meta/repository/entity-master.repository.js +1 -1
  358. package/dist/module/meta/repository/entity-master.repository.js.map +1 -1
  359. package/dist/module/meta/repository/entity-relation.repository.d.ts +1 -0
  360. package/dist/module/meta/repository/entity-relation.repository.js +10 -0
  361. package/dist/module/meta/repository/entity-relation.repository.js.map +1 -1
  362. package/dist/module/meta/service/attribute-master.service.d.ts +6 -6
  363. package/dist/module/meta/service/attribute-master.service.js +74 -49
  364. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  365. package/dist/module/meta/service/entity-dynamic.service.d.ts +12 -13
  366. package/dist/module/meta/service/entity-dynamic.service.js +215 -80
  367. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  368. package/dist/module/meta/service/entity-master.service.d.ts +10 -1
  369. package/dist/module/meta/service/entity-master.service.js +80 -3
  370. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  371. package/dist/module/meta/service/entity-relation.service.d.ts +6 -5
  372. package/dist/module/meta/service/entity-relation.service.js +7 -10
  373. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  374. package/dist/module/meta/service/entity-service-impl.service.d.ts +3 -3
  375. package/dist/module/meta/service/entity-service-impl.service.js +14 -18
  376. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  377. package/dist/module/meta/service/entity-table.service.d.ts +4 -5
  378. package/dist/module/meta/service/entity-table.service.js +24 -45
  379. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  380. package/dist/module/meta/service/entity-validation.service.d.ts +1 -3
  381. package/dist/module/meta/service/entity-validation.service.js +5 -34
  382. package/dist/module/meta/service/entity-validation.service.js.map +1 -1
  383. package/dist/module/meta/service/entity.service.d.ts +1 -1
  384. package/dist/module/meta/service/media-data.service.d.ts +0 -4
  385. package/dist/module/meta/service/media-data.service.js +0 -129
  386. package/dist/module/meta/service/media-data.service.js.map +1 -1
  387. package/dist/module/meta/service/resolver.service.d.ts +1 -1
  388. package/dist/module/meta/service/resolver.service.js +55 -95
  389. package/dist/module/meta/service/resolver.service.js.map +1 -1
  390. package/dist/module/module/controller/menu.controller.d.ts +6 -1
  391. package/dist/module/module/controller/menu.controller.js +20 -2
  392. package/dist/module/module/controller/menu.controller.js.map +1 -1
  393. package/dist/module/module/controller/module-access.controller.d.ts +3 -4
  394. package/dist/module/module/controller/module-access.controller.js +13 -8
  395. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  396. package/dist/module/module/entity/menu.entity.d.ts +6 -3
  397. package/dist/module/module/entity/menu.entity.js +19 -10
  398. package/dist/module/module/entity/menu.entity.js.map +1 -1
  399. package/dist/module/module/entity/module-access.entity.d.ts +15 -1
  400. package/dist/module/module/entity/module-access.entity.js +49 -3
  401. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  402. package/dist/module/module/entity/module-action.entity.d.ts +4 -2
  403. package/dist/module/module/entity/module-action.entity.js +11 -6
  404. package/dist/module/module/entity/module-action.entity.js.map +1 -1
  405. package/dist/module/module/entity/module.entity.d.ts +3 -5
  406. package/dist/module/module/entity/module.entity.js +8 -18
  407. package/dist/module/module/entity/module.entity.js.map +1 -1
  408. package/dist/module/module/module.module.d.ts +1 -1
  409. package/dist/module/module/module.module.js +7 -7
  410. package/dist/module/module/module.module.js.map +1 -1
  411. package/dist/module/module/repository/menu.repository.d.ts +3 -3
  412. package/dist/module/module/repository/menu.repository.js +40 -29
  413. package/dist/module/module/repository/menu.repository.js.map +1 -1
  414. package/dist/module/module/repository/module-access.repository.d.ts +6 -6
  415. package/dist/module/module/repository/module-access.repository.js +100 -50
  416. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  417. package/dist/module/module/service/menu.service.d.ts +2 -4
  418. package/dist/module/module/service/menu.service.js +7 -10
  419. package/dist/module/module/service/menu.service.js.map +1 -1
  420. package/dist/module/module/service/module-access.service.d.ts +7 -10
  421. package/dist/module/module/service/module-access.service.js +22 -24
  422. package/dist/module/module/service/module-access.service.js.map +1 -1
  423. package/dist/module/module/service/module-import.service.d.ts +18 -0
  424. package/dist/module/module/service/module-import.service.js +203 -0
  425. package/dist/module/module/service/module-import.service.js.map +1 -0
  426. package/dist/module/notification/entity/notification.entity.d.ts +17 -2
  427. package/dist/module/notification/entity/notification.entity.js +68 -2
  428. package/dist/module/notification/entity/notification.entity.js.map +1 -1
  429. package/dist/module/notification/notification.module.js +3 -6
  430. package/dist/module/notification/notification.module.js.map +1 -1
  431. package/dist/module/notification/service/email.service.d.ts +1 -0
  432. package/dist/module/notification/service/email.service.js +14 -0
  433. package/dist/module/notification/service/email.service.js.map +1 -1
  434. package/dist/module/notification/service/notification.service.d.ts +1 -5
  435. package/dist/module/notification/service/notification.service.js +41 -31
  436. package/dist/module/notification/service/notification.service.js.map +1 -1
  437. package/dist/module/notification/service/otp.service.d.ts +2 -2
  438. package/dist/module/notification/service/otp.service.js +4 -5
  439. package/dist/module/notification/service/otp.service.js.map +1 -1
  440. package/dist/module/preference_master/entity/preference.entity.d.ts +9 -0
  441. package/dist/module/preference_master/entity/preference.entity.js +48 -0
  442. package/dist/module/preference_master/entity/preference.entity.js.map +1 -0
  443. package/dist/module/preference_master/preference.service.d.ts +8 -0
  444. package/dist/module/preference_master/preference.service.js +31 -0
  445. package/dist/module/preference_master/preference.service.js.map +1 -0
  446. package/dist/module/preference_master/repo/preference.repository.d.ts +8 -0
  447. package/dist/module/preference_master/repo/preference.repository.js +48 -0
  448. package/dist/module/preference_master/repo/preference.repository.js.map +1 -0
  449. package/dist/module/user/controller/login.controller.d.ts +1 -3
  450. package/dist/module/user/controller/login.controller.js +20 -24
  451. package/dist/module/user/controller/login.controller.js.map +1 -1
  452. package/dist/module/user/controller/user.controller.d.ts +0 -2
  453. package/dist/module/user/controller/user.controller.js +0 -13
  454. package/dist/module/user/controller/user.controller.js.map +1 -1
  455. package/dist/module/user/dto/create-user.dto.d.ts +6 -3
  456. package/dist/module/user/dto/create-user.dto.js +17 -11
  457. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  458. package/dist/module/user/entity/role.entity.d.ts +18 -6
  459. package/dist/module/user/entity/role.entity.js +64 -19
  460. package/dist/module/user/entity/role.entity.js.map +1 -1
  461. package/dist/module/user/entity/user-role-mapping.entity.d.ts +10 -0
  462. package/dist/module/user/entity/user-role-mapping.entity.js +33 -1
  463. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  464. package/dist/module/user/entity/user-session.entity.d.ts +0 -2
  465. package/dist/module/user/entity/user-session.entity.js +2 -20
  466. package/dist/module/user/entity/user-session.entity.js.map +1 -1
  467. package/dist/module/user/entity/user.entity.d.ts +17 -5
  468. package/dist/module/user/entity/user.entity.js +61 -15
  469. package/dist/module/user/entity/user.entity.js.map +1 -1
  470. package/dist/module/user/repository/role.repository.d.ts +7 -2
  471. package/dist/module/user/repository/role.repository.js +23 -8
  472. package/dist/module/user/repository/role.repository.js.map +1 -1
  473. package/dist/module/user/repository/user-role-mapping.repository.d.ts +1 -0
  474. package/dist/module/user/repository/user-role-mapping.repository.js +3 -0
  475. package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
  476. package/dist/module/user/repository/user.repository.d.ts +5 -2
  477. package/dist/module/user/repository/user.repository.js +26 -7
  478. package/dist/module/user/repository/user.repository.js.map +1 -1
  479. package/dist/module/user/repository/userSession.repository.d.ts +1 -0
  480. package/dist/module/user/repository/userSession.repository.js +3 -0
  481. package/dist/module/user/repository/userSession.repository.js.map +1 -1
  482. package/dist/module/user/service/login.service.d.ts +3 -5
  483. package/dist/module/user/service/login.service.js +43 -42
  484. package/dist/module/user/service/login.service.js.map +1 -1
  485. package/dist/module/user/service/role.service.d.ts +24 -11
  486. package/dist/module/user/service/role.service.js +54 -41
  487. package/dist/module/user/service/role.service.js.map +1 -1
  488. package/dist/module/user/service/user-role-mapping.service.d.ts +5 -0
  489. package/dist/module/user/service/user-role-mapping.service.js +9 -0
  490. package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
  491. package/dist/module/user/service/user-session.service.d.ts +3 -4
  492. package/dist/module/user/service/user-session.service.js +10 -12
  493. package/dist/module/user/service/user-session.service.js.map +1 -1
  494. package/dist/module/user/service/user.service.d.ts +33 -22
  495. package/dist/module/user/service/user.service.js +66 -58
  496. package/dist/module/user/service/user.service.js.map +1 -1
  497. package/dist/module/user/user.module.js +2 -7
  498. package/dist/module/user/user.module.js.map +1 -1
  499. package/dist/module/workflow/controller/activity-log.controller.d.ts +5 -6
  500. package/dist/module/workflow/entity/action-category.entity.d.ts +0 -1
  501. package/dist/module/workflow/entity/action-category.entity.js +1 -7
  502. package/dist/module/workflow/entity/action-category.entity.js.map +1 -1
  503. package/dist/module/workflow/entity/action-data.entity.d.ts +0 -1
  504. package/dist/module/workflow/entity/action-data.entity.js +1 -6
  505. package/dist/module/workflow/entity/action-data.entity.js.map +1 -1
  506. package/dist/module/workflow/entity/action-resources-mapping.entity.d.ts +0 -1
  507. package/dist/module/workflow/entity/action-resources-mapping.entity.js +1 -7
  508. package/dist/module/workflow/entity/action-resources-mapping.entity.js.map +1 -1
  509. package/dist/module/workflow/entity/action-template-mapping.entity.d.ts +0 -1
  510. package/dist/module/workflow/entity/action-template-mapping.entity.js +1 -7
  511. package/dist/module/workflow/entity/action-template-mapping.entity.js.map +1 -1
  512. package/dist/module/workflow/entity/action.entity.d.ts +0 -1
  513. package/dist/module/workflow/entity/action.entity.js +1 -7
  514. package/dist/module/workflow/entity/action.entity.js.map +1 -1
  515. package/dist/module/workflow/entity/activity-log.entity.d.ts +0 -1
  516. package/dist/module/workflow/entity/activity-log.entity.js +1 -6
  517. package/dist/module/workflow/entity/activity-log.entity.js.map +1 -1
  518. package/dist/module/workflow/entity/comm-template.entity.d.ts +0 -1
  519. package/dist/module/workflow/entity/comm-template.entity.js +1 -7
  520. package/dist/module/workflow/entity/comm-template.entity.js.map +1 -1
  521. package/dist/module/workflow/entity/entity-modification.entity.d.ts +0 -1
  522. package/dist/module/workflow/entity/entity-modification.entity.js +1 -7
  523. package/dist/module/workflow/entity/entity-modification.entity.js.map +1 -1
  524. package/dist/module/workflow/entity/form.entity.d.ts +0 -1
  525. package/dist/module/workflow/entity/form.entity.js +1 -6
  526. package/dist/module/workflow/entity/form.entity.js.map +1 -1
  527. package/dist/module/workflow/entity/stage-action-mapping.entity.d.ts +0 -1
  528. package/dist/module/workflow/entity/stage-action-mapping.entity.js +1 -7
  529. package/dist/module/workflow/entity/stage-action-mapping.entity.js.map +1 -1
  530. package/dist/module/workflow/entity/stage-group.entity.d.ts +0 -1
  531. package/dist/module/workflow/entity/stage-group.entity.js +1 -7
  532. package/dist/module/workflow/entity/stage-group.entity.js.map +1 -1
  533. package/dist/module/workflow/entity/stage-movement-data.entity.d.ts +0 -1
  534. package/dist/module/workflow/entity/stage-movement-data.entity.js +1 -7
  535. package/dist/module/workflow/entity/stage-movement-data.entity.js.map +1 -1
  536. package/dist/module/workflow/entity/stage.entity.d.ts +0 -1
  537. package/dist/module/workflow/entity/stage.entity.js +1 -7
  538. package/dist/module/workflow/entity/stage.entity.js.map +1 -1
  539. package/dist/module/workflow/entity/task-data.entity.d.ts +0 -1
  540. package/dist/module/workflow/entity/task-data.entity.js +1 -6
  541. package/dist/module/workflow/entity/task-data.entity.js.map +1 -1
  542. package/dist/module/workflow/entity/workflow-data.entity.d.ts +0 -1
  543. package/dist/module/workflow/entity/workflow-data.entity.js +1 -10
  544. package/dist/module/workflow/entity/workflow-data.entity.js.map +1 -1
  545. package/dist/module/workflow/entity/workflow.entity.d.ts +0 -1
  546. package/dist/module/workflow/entity/workflow.entity.js +1 -7
  547. package/dist/module/workflow/entity/workflow.entity.js.map +1 -1
  548. package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
  549. package/dist/module/workflow/repository/action-data.repository.js +9 -17
  550. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  551. package/dist/module/workflow/repository/action.repository.d.ts +1 -1
  552. package/dist/module/workflow/repository/action.repository.js +12 -12
  553. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  554. package/dist/module/workflow/repository/activity-log.repository.d.ts +5 -6
  555. package/dist/module/workflow/repository/comm-template.repository.js +2 -2
  556. package/dist/module/workflow/repository/comm-template.repository.js.map +1 -1
  557. package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
  558. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  559. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  560. package/dist/module/workflow/repository/stage-group.repository.d.ts +6 -6
  561. package/dist/module/workflow/repository/stage.repository.d.ts +5 -6
  562. package/dist/module/workflow/repository/stage.repository.js +8 -8
  563. package/dist/module/workflow/repository/task.repository.js +5 -5
  564. package/dist/module/workflow/repository/task.repository.js.map +1 -1
  565. package/dist/module/workflow/repository/workflow.repository.js +1 -1
  566. package/dist/module/workflow/repository/workflow.repository.js.map +1 -1
  567. package/dist/module/workflow/service/action-data.service.js +1 -2
  568. package/dist/module/workflow/service/action-data.service.js.map +1 -1
  569. package/dist/module/workflow/service/action-template-mapping.service.js +2 -2
  570. package/dist/module/workflow/service/action.service.js +15 -17
  571. package/dist/module/workflow/service/action.service.js.map +1 -1
  572. package/dist/module/workflow/service/activity-log.service.d.ts +5 -6
  573. package/dist/module/workflow/service/comm-template.service.js +0 -2
  574. package/dist/module/workflow/service/comm-template.service.js.map +1 -1
  575. package/dist/module/workflow/service/entity-modification.service.js +2 -3
  576. package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
  577. package/dist/module/workflow/service/form-master.service.js +2 -2
  578. package/dist/module/workflow/service/form-master.service.js.map +1 -1
  579. package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
  580. package/dist/module/workflow/service/populate-workflow.service.js +1 -6
  581. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  582. package/dist/module/workflow/service/task.service.js +10 -13
  583. package/dist/module/workflow/service/task.service.js.map +1 -1
  584. package/dist/module/workflow/service/workflow-meta.service.js +2 -7
  585. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  586. package/dist/module/workflow/service/workflow.service.js +2 -2
  587. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  588. package/dist/module/workflow/workflow.module.js +2 -0
  589. package/dist/module/workflow/workflow.module.js.map +1 -1
  590. package/dist/module/workflow-automation/entity/workflow-automation.entity.d.ts +1 -3
  591. package/dist/module/workflow-automation/entity/workflow-automation.entity.js +1 -9
  592. package/dist/module/workflow-automation/entity/workflow-automation.entity.js.map +1 -1
  593. package/dist/module/workflow-automation/service/schedule-handler.service.js +11 -12
  594. package/dist/module/workflow-automation/service/schedule-handler.service.js.map +1 -1
  595. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +7 -9
  596. package/dist/module/workflow-automation/service/workflow-automation.service.js +18 -15
  597. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  598. package/dist/module/workflow-automation/workflow-automation.module.js +3 -1
  599. package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
  600. package/dist/module/workflow-schedule/interfaces/schedule-job-data.interface.d.ts +1 -2
  601. package/dist/module/workflow-schedule/processors/schedule.processor.js +5 -9
  602. package/dist/module/workflow-schedule/processors/schedule.processor.js.map +1 -1
  603. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +4 -13
  604. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
  605. package/dist/table.config.d.ts +4 -12
  606. package/dist/table.config.js +21 -3
  607. package/dist/table.config.js.map +1 -1
  608. package/dist/tsconfig.build.tsbuildinfo +1 -1
  609. package/dist/utils/service/reflection-helper.service.js +2 -2
  610. package/docs/modules/event-driven-integration-design.md +91 -91
  611. package/docs/modules/integration.md +250 -250
  612. package/eslint.config.mjs +34 -34
  613. package/nest-cli.json +14 -14
  614. package/package.json +128 -125
  615. package/server.log +850 -0
  616. package/src/app.controller.ts +12 -13
  617. package/src/app.module.ts +72 -68
  618. package/src/app.service.ts +8 -8
  619. package/src/config/bull.config.ts +69 -69
  620. package/src/config/config.module.ts +17 -17
  621. package/src/config/database.config.ts +48 -48
  622. package/src/constant/attribute.constant.ts +9 -0
  623. package/src/constant/db-data-type.constant.ts +160 -0
  624. package/src/constant/entity.constant.ts +4 -0
  625. package/src/constant/global.constant.ts +67 -67
  626. package/src/constant/status.constant.ts +4 -0
  627. package/src/core.module.ts +111 -94
  628. package/src/decorators/roles.decorator.ts +7 -7
  629. package/src/dtos/response.dto.ts +6 -6
  630. package/src/dtos/response.ts +5 -5
  631. package/src/index.ts +1 -1
  632. package/src/module/app_master/app-master.module.ts +15 -0
  633. package/src/module/{meta → app_master}/controller/app-master.controller.ts +56 -38
  634. package/src/module/{meta → app_master}/entity/app-master.entity.ts +50 -37
  635. package/src/module/app_master/repository/app-master.repository.ts +38 -0
  636. package/src/module/{meta → app_master}/service/app-master.service.ts +48 -37
  637. package/src/module/auth/auth.module.ts +77 -49
  638. package/src/module/auth/controller/auth.controller.ts +28 -28
  639. package/src/module/auth/guards/google-auth.guard.ts +9 -9
  640. package/src/module/auth/guards/jwt.guard.ts +22 -22
  641. package/src/module/auth/guards/role.guard.ts +68 -68
  642. package/src/module/auth/services/auth.service.ts +56 -56
  643. package/src/module/auth/services/jwt.service.ts +11 -11
  644. package/src/module/auth/strategies/google.strategy.ts +54 -54
  645. package/src/module/auth/strategies/jwt.strategy.ts +64 -58
  646. package/src/module/auth/strategies/local.strategy.ts +13 -13
  647. package/src/module/dashboard/controller/dashboard.controller.ts +38 -38
  648. package/src/module/dashboard/dashboard.module.ts +21 -21
  649. package/src/module/dashboard/entity/dashboard_page_data.entity.ts +23 -27
  650. package/src/module/dashboard/entity/widget_master.entity.ts +15 -18
  651. package/src/module/dashboard/repository/dashboard.repository.ts +49 -49
  652. package/src/module/dashboard/service/dashboard.service.ts +71 -72
  653. package/src/module/eav/EAV_USAGE_GUIDE.md +351 -0
  654. package/src/module/eav/controller/eav.controller.ts +119 -0
  655. package/src/module/eav/dto/eav-operation.dto.ts +62 -0
  656. package/src/module/eav/eav.module.ts +80 -0
  657. package/src/module/eav/entity/eav-boolean.entity.ts +26 -0
  658. package/src/module/eav/entity/eav-date.entity.ts +25 -0
  659. package/src/module/eav/entity/eav-decimal.entity.ts +25 -0
  660. package/src/module/eav/entity/eav-int.entity.ts +25 -0
  661. package/src/module/eav/entity/eav-json.entity.ts +25 -0
  662. package/src/module/eav/entity/eav-text.entity.ts +25 -0
  663. package/src/module/eav/entity/eav-time.entity.ts +25 -0
  664. package/src/module/eav/entity/eav-timestamp.entity.ts +25 -0
  665. package/src/module/eav/entity/eav-varchar.entity.ts +25 -0
  666. package/src/module/eav/interface/eav-strategy.interface.ts +32 -0
  667. package/src/module/eav/repository/eav-boolean.repository.ts +67 -0
  668. package/src/module/eav/repository/eav-date.repository.ts +67 -0
  669. package/src/module/eav/repository/eav-decimal.repository.ts +67 -0
  670. package/src/module/eav/repository/eav-int.repository.ts +67 -0
  671. package/src/module/eav/repository/eav-json.repository.ts +67 -0
  672. package/src/module/eav/repository/eav-text.repository.ts +67 -0
  673. package/src/module/eav/repository/eav-time.repository.ts +67 -0
  674. package/src/module/eav/repository/eav-timestamp.repository.ts +67 -0
  675. package/src/module/eav/repository/eav-varchar.repository.ts +67 -0
  676. package/src/module/eav/service/eav-boolean.service.ts +64 -0
  677. package/src/module/eav/service/eav-date.service.ts +64 -0
  678. package/src/module/eav/service/eav-decimal.service.ts +64 -0
  679. package/src/module/eav/service/eav-factory.service.ts +93 -0
  680. package/src/module/eav/service/eav-int.service.ts +64 -0
  681. package/src/module/eav/service/eav-json.service.ts +64 -0
  682. package/src/module/eav/service/eav-text.service.ts +64 -0
  683. package/src/module/eav/service/eav-time.service.ts +64 -0
  684. package/src/module/eav/service/eav-timestamp.service.ts +64 -0
  685. package/src/module/eav/service/eav-varchar.service.ts +65 -0
  686. package/src/module/eav/service/eav.service.ts +116 -0
  687. package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
  688. package/src/module/enterprise/controller/meta.controller.ts +23 -0
  689. package/src/module/enterprise/controller/organization.controller.ts +99 -36
  690. package/src/module/enterprise/enterprise.module.ts +43 -45
  691. package/src/module/enterprise/entity/enterprise.entity.ts +31 -37
  692. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +27 -13
  693. package/src/module/enterprise/entity/organization.entity.ts +45 -92
  694. package/src/module/enterprise/repository/enterprise.repository.ts +53 -31
  695. package/src/module/enterprise/repository/organization.repository.ts +26 -26
  696. package/src/module/enterprise/repository/school.repository.ts +272 -289
  697. package/src/module/enterprise/service/brand-profile.service.ts +10 -0
  698. package/src/module/enterprise/service/brand.service.ts +75 -5
  699. package/src/module/enterprise/service/enterprise.service.ts +24 -16
  700. package/src/module/enterprise/service/organization-app-mapping.service.ts +4 -4
  701. package/src/module/enterprise/service/organization.service.ts +374 -146
  702. package/src/module/{meta → enterprise}/service/populate-meta.service.ts +210 -228
  703. package/src/module/enterprise/service/school.service.ts +5 -0
  704. package/src/module/entity_json/controller/entity_json.controller.ts +75 -60
  705. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2803 -2803
  706. package/src/module/entity_json/entity/entityJson.entity.ts +42 -42
  707. package/src/module/entity_json/entity_json.module.ts +22 -22
  708. package/src/module/entity_json/service/entityJson.repository.ts +37 -37
  709. package/src/module/entity_json/service/entity_json.service.ts +492 -486
  710. package/src/module/export/controller/export.controller.ts +83 -83
  711. package/src/module/export/export.module.ts +14 -14
  712. package/src/module/export/service/export.service.ts +107 -105
  713. package/src/module/filter/controller/filter.controller.ts +89 -87
  714. package/src/module/filter/dto/filter-request.dto.ts +40 -39
  715. package/src/module/filter/entity/saved-filter-detail.entity.ts +37 -41
  716. package/src/module/filter/entity/saved-filter-master.entity.ts +30 -35
  717. package/src/module/filter/filter.module.ts +33 -42
  718. package/src/module/filter/repository/saved-filter.repository.ts +247 -249
  719. package/src/module/filter/repository/saved.filter-detail.repository.ts +19 -19
  720. package/src/module/filter/service/filter-evaluator.service.ts +82 -82
  721. package/src/module/filter/service/filter.service.ts +1389 -1406
  722. package/src/module/filter/service/saved-filter.service.ts +165 -154
  723. package/src/module/ics/controller/ics.controller.ts +21 -21
  724. package/src/module/ics/dto/ics.dto.ts +55 -55
  725. package/src/module/ics/ics.module.ts +13 -13
  726. package/src/module/ics/service/ics.service.ts +57 -57
  727. package/src/module/integration/controller/calender-event.controller.ts +31 -31
  728. package/src/module/integration/controller/integration.controller.ts +662 -662
  729. package/src/module/integration/controller/wrapper.controller.ts +37 -37
  730. package/src/module/integration/dto/create-config.dto.ts +526 -526
  731. package/src/module/integration/entity/integration-config.entity.ts +112 -112
  732. package/src/module/integration/entity/integration-entity-mapper.entity.ts +14 -14
  733. package/src/module/integration/entity/integration-source.entity.ts +17 -17
  734. package/src/module/integration/entity/user-integration.entity.ts +71 -71
  735. package/src/module/integration/examples/usage.example.ts +338 -338
  736. package/src/module/integration/factories/base.factory.ts +7 -7
  737. package/src/module/integration/factories/email.factory.ts +49 -49
  738. package/src/module/integration/factories/integration.factory.ts +121 -121
  739. package/src/module/integration/factories/sms.factory.ts +51 -51
  740. package/src/module/integration/factories/telephone.factory.ts +41 -41
  741. package/src/module/integration/factories/whatsapp.factory.ts +56 -56
  742. package/src/module/integration/integration.module.ts +110 -110
  743. package/src/module/integration/service/calendar-event.service.ts +118 -118
  744. package/src/module/integration/service/integration-entity-mapper.service.ts +17 -17
  745. package/src/module/integration/service/integration-queue.service.ts +229 -229
  746. package/src/module/integration/service/integration.service.ts +2632 -2653
  747. package/src/module/integration/service/oauth.service.ts +224 -226
  748. package/src/module/integration/service/wrapper.service.ts +753 -754
  749. package/src/module/integration/strategies/email/gmail-api.strategy.ts +281 -307
  750. package/src/module/integration/strategies/email/outlook-api.strategy.ts +44 -44
  751. package/src/module/integration/strategies/email/outlook.strategy.ts +64 -64
  752. package/src/module/integration/strategies/email/sendgrid-api.strategy.ts +260 -263
  753. package/src/module/integration/strategies/integration.strategy.ts +97 -97
  754. package/src/module/integration/strategies/sms/gupshup-sms.strategy.ts +146 -146
  755. package/src/module/integration/strategies/sms/msg91-sms.strategy.ts +164 -164
  756. package/src/module/integration/strategies/sms/tubelight-sms.strategy.ts +163 -163
  757. package/src/module/integration/strategies/telephone/ozonetel-voice.strategy.ts +238 -238
  758. package/src/module/integration/strategies/telephone/tubelight-voice.strategy.ts +210 -210
  759. package/src/module/integration/strategies/whatsapp/gupshup-whatsapp.strategy.ts +359 -359
  760. package/src/module/integration/strategies/whatsapp/tubelight-whatsapp.strategy.ts +372 -372
  761. package/src/module/integration/strategies/whatsapp/whatsapp-cloud.strategy.ts +403 -403
  762. package/src/module/integration/strategies/whatsapp/whatsapp.strategy.ts +57 -57
  763. package/src/module/layout/controller/layout.controller.ts +40 -47
  764. package/src/module/layout/entity/header-items.entity.ts +28 -28
  765. package/src/module/layout/entity/header-section.entity.ts +13 -19
  766. package/src/module/layout/layout.module.ts +21 -21
  767. package/src/module/layout/repository/header-items.repository.ts +18 -18
  768. package/src/module/layout/repository/header-section.repository.ts +16 -22
  769. package/src/module/layout/service/header-section.service.ts +25 -25
  770. package/src/module/layout_preference/controller/layout_preference.controller.ts +76 -76
  771. package/src/module/layout_preference/entity/layout_preference.entity.ts +28 -28
  772. package/src/module/layout_preference/layout_preference.module.ts +22 -22
  773. package/src/module/layout_preference/repository/layout_preference.repository.ts +65 -65
  774. package/src/module/layout_preference/service/layout_preference.service.ts +191 -191
  775. package/src/module/lead/controller/lead.controller.ts +30 -30
  776. package/src/module/lead/lead.module.ts +14 -14
  777. package/src/module/lead/repository/lead.repository.ts +41 -41
  778. package/src/module/lead/service/lead.service.ts +54 -54
  779. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +137 -137
  780. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -54
  781. package/src/module/linked_attributes/entity/linked_attribute.entity.ts +51 -51
  782. package/src/module/linked_attributes/linked_attributes.module.ts +23 -23
  783. package/src/module/linked_attributes/repository/linked_attribute.repository.ts +12 -12
  784. package/src/module/linked_attributes/service/linked_attributes.service.ts +648 -648
  785. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -244
  786. package/src/module/listmaster/controller/list-master.controller.ts +206 -230
  787. package/src/module/listmaster/entity/list-master-items.entity.ts +30 -43
  788. package/src/module/listmaster/entity/list-master.entity.ts +23 -33
  789. package/src/module/listmaster/listmaster.module.ts +46 -46
  790. package/src/module/listmaster/repository/list-master-items.repository.ts +225 -173
  791. package/src/module/listmaster/repository/list-master.repository.ts +56 -56
  792. package/src/module/listmaster/service/list-master-engine.ts +19 -19
  793. package/src/module/listmaster/service/list-master-extension.interface.ts +4 -4
  794. package/src/module/listmaster/service/list-master-item.service.ts +382 -280
  795. package/src/module/listmaster/service/list-master-registry.ts +15 -15
  796. package/src/module/listmaster/service/list-master.service.ts +767 -527
  797. package/src/module/mapper/controller/field-mapper.controller.ts +76 -76
  798. package/src/module/mapper/controller/mapper.controller.ts +20 -20
  799. package/src/module/mapper/dto/field-mapper.dto.ts +14 -14
  800. package/src/module/mapper/entity/field-lovs.entity.ts +15 -19
  801. package/src/module/mapper/entity/field-mapper.entity.ts +49 -53
  802. package/src/module/mapper/entity/mapper.entity.ts +9 -16
  803. package/src/module/mapper/mapper.module.ts +35 -35
  804. package/src/module/mapper/repository/field-lovs.repository.ts +35 -35
  805. package/src/module/mapper/repository/field-mapper.repository.ts +42 -42
  806. package/src/module/mapper/repository/mapper.repository.ts +32 -32
  807. package/src/module/mapper/service/field-mapper.service.ts +268 -269
  808. package/src/module/mapper/service/mapper.service.ts +80 -80
  809. package/src/module/master/controller/master.controller.ts +71 -74
  810. package/src/module/master/service/master.service.ts +460 -484
  811. package/src/module/meta/controller/attribute-master.controller.ts +82 -96
  812. package/src/module/meta/controller/entity-dynamic.controller.ts +123 -125
  813. package/src/module/meta/controller/entity-master.controller.ts +41 -41
  814. package/src/module/meta/controller/entity-relation.controller.ts +36 -36
  815. package/src/module/meta/controller/entity.controller.ts +301 -308
  816. package/src/module/meta/controller/entity.public.controller.ts +76 -75
  817. package/src/module/meta/controller/media.controller.ts +135 -167
  818. package/src/module/meta/controller/meta.controller.ts +80 -101
  819. package/src/module/meta/controller/view-master.controller.ts +79 -79
  820. package/src/module/meta/dto/entity-list-data.dto.ts +6 -6
  821. package/src/module/meta/dto/entity-tab.dto.ts +4 -4
  822. package/src/module/meta/dto/entity-table.dto.ts +12 -12
  823. package/src/module/meta/entity/attribute-master.entity.ts +62 -92
  824. package/src/module/meta/entity/base-entity.entity.ts +52 -75
  825. package/src/module/meta/entity/dynamic.entity.ts +6 -0
  826. package/src/module/meta/entity/entity-master.entity.ts +53 -91
  827. package/src/module/meta/entity/entity-relation-data.entity.ts +24 -29
  828. package/src/module/meta/entity/entity-relation.entity.ts +18 -23
  829. package/src/module/meta/entity/entity-table-column.entity.ts +56 -61
  830. package/src/module/meta/entity/entity-table.entity.ts +45 -50
  831. package/src/module/meta/entity/media-data.entity.ts +32 -38
  832. package/src/module/meta/entity/preference.entity.ts +57 -62
  833. package/src/module/meta/entity/view-master.entity.ts +36 -41
  834. package/src/module/meta/entity.module.ts +154 -165
  835. package/src/module/meta/repository/attribute-master.repository.ts +206 -164
  836. package/src/module/meta/repository/entity-attribute-update.repository.ts +48 -48
  837. package/src/module/meta/repository/entity-master.repository.ts +120 -120
  838. package/src/module/meta/repository/entity-relation.repository.ts +36 -22
  839. package/src/module/meta/repository/entity-table-column.repository.ts +39 -39
  840. package/src/module/meta/repository/entity-table.repository.ts +53 -53
  841. package/src/module/meta/repository/media-data.repository.ts +50 -50
  842. package/src/module/meta/repository/preference.repository.ts +20 -20
  843. package/src/module/meta/repository/user-app-mapping.repository.ts +28 -28
  844. package/src/module/meta/repository/view-master.repository.ts +42 -42
  845. package/src/module/meta/service/attribute-master.service.ts +254 -160
  846. package/src/module/meta/service/common.service.ts +9 -9
  847. package/src/module/meta/service/entity-attribute-update.service.ts +26 -26
  848. package/src/module/meta/service/entity-dynamic.service.ts +993 -835
  849. package/src/module/meta/service/entity-master.service.ts +288 -172
  850. package/src/module/meta/service/entity-realation-data.service.ts +9 -9
  851. package/src/module/meta/service/entity-relation.service.ts +85 -78
  852. package/src/module/meta/service/entity-service-impl.service.ts +394 -389
  853. package/src/module/meta/service/entity-table-column.service.ts +26 -26
  854. package/src/module/meta/service/entity-table.service.ts +157 -171
  855. package/src/module/meta/service/entity-validation.service.ts +187 -188
  856. package/src/module/meta/service/entity.service.ts +50 -48
  857. package/src/module/meta/service/field-group.service.ts +103 -103
  858. package/src/module/meta/service/media-data.service.ts +385 -610
  859. package/src/module/meta/service/preference.service.ts +16 -16
  860. package/src/module/meta/service/resolver.service.ts +260 -347
  861. package/src/module/meta/service/section-master.service.ts +104 -104
  862. package/src/module/meta/service/update-form-json.service.ts +22 -22
  863. package/src/module/meta/service/user-app-mapping.service.ts +17 -17
  864. package/src/module/meta/service/view-master.service.ts +127 -127
  865. package/src/module/microservice-client/microservice-clients.module.ts +13 -13
  866. package/src/module/microservice-client/service/microservice-client-factory.ts +37 -37
  867. package/src/module/microservice-client/service/microservice-clients.ts +4 -4
  868. package/src/module/module/controller/menu.controller.ts +41 -15
  869. package/src/module/module/controller/module-access.controller.ts +138 -133
  870. package/src/module/module/entity/menu.entity.ts +51 -43
  871. package/src/module/module/entity/module-access.entity.ts +62 -25
  872. package/src/module/module/entity/module-action.entity.ts +21 -17
  873. package/src/module/module/entity/module.entity.ts +45 -52
  874. package/src/module/module/module.module.ts +43 -42
  875. package/src/module/module/repository/menu.repository.ts +200 -186
  876. package/src/module/module/repository/module-access.repository.ts +392 -344
  877. package/src/module/module/service/menu.service.ts +80 -82
  878. package/src/module/module/service/module-access.service.ts +177 -189
  879. package/src/module/module/service/module-import.service.ts +294 -0
  880. package/src/module/notification/controller/notification.controller.ts +58 -58
  881. package/src/module/notification/controller/otp.controller.ts +117 -117
  882. package/src/module/notification/entity/notification.entity.ts +76 -26
  883. package/src/module/notification/entity/otp.entity.ts +28 -28
  884. package/src/module/notification/firebase-admin.config.ts +22 -22
  885. package/src/module/notification/notification.module.ts +70 -71
  886. package/src/module/notification/repository/otp.repository.ts +27 -27
  887. package/src/module/notification/service/email.service.ts +142 -127
  888. package/src/module/notification/service/notification.service.ts +163 -146
  889. package/src/module/notification/service/otp.service.ts +144 -133
  890. package/src/module/preference_master/entity/preference.entity.ts +25 -0
  891. package/src/module/preference_master/preference.service.ts +27 -0
  892. package/src/module/preference_master/repo/preference.repository.ts +36 -0
  893. package/src/module/third-party-module/entity/third-party-api-registry.entity.ts +52 -52
  894. package/src/module/third-party-module/repository/third-party-api-registry.repository.ts +20 -20
  895. package/src/module/third-party-module/service/api-registry.service.ts +13 -13
  896. package/src/module/third-party-module/third-party.module.ts +12 -12
  897. package/src/module/user/controller/login.controller.ts +197 -199
  898. package/src/module/user/controller/user.controller.ts +31 -40
  899. package/src/module/user/dto/create-user.dto.ts +75 -62
  900. package/src/module/user/dto/update-user.dto.ts +4 -4
  901. package/src/module/user/entity/role.entity.ts +76 -33
  902. package/src/module/user/entity/user-role-mapping.entity.ts +64 -38
  903. package/src/module/user/entity/user-session.entity.ts +57 -73
  904. package/src/module/user/entity/user.entity.ts +97 -62
  905. package/src/module/user/repository/role.repository.ts +116 -96
  906. package/src/module/user/repository/user-role-mapping.repository.ts +130 -126
  907. package/src/module/user/repository/user.repository.ts +77 -50
  908. package/src/module/user/repository/userSession.repository.ts +37 -33
  909. package/src/module/user/service/login.service.ts +322 -326
  910. package/src/module/user/service/role.service.ts +197 -197
  911. package/src/module/user/service/user-role-mapping.service.ts +128 -98
  912. package/src/module/user/service/user-session.service.ts +203 -201
  913. package/src/module/user/service/user.service.ts +349 -368
  914. package/src/module/user/user.module.ts +64 -65
  915. package/src/module/workflow/controller/action-category.controller.ts +54 -54
  916. package/src/module/workflow/controller/action-resource-mapping.controller.ts +23 -23
  917. package/src/module/workflow/controller/action-template-mapping.controller.ts +35 -35
  918. package/src/module/workflow/controller/action.controller.ts +111 -111
  919. package/src/module/workflow/controller/activity-log.controller.ts +55 -55
  920. package/src/module/workflow/controller/comm-template.controller.ts +43 -43
  921. package/src/module/workflow/controller/entity-modification.controller.ts +35 -35
  922. package/src/module/workflow/controller/form-master.controller.ts +43 -43
  923. package/src/module/workflow/controller/stage-group.controller.ts +49 -49
  924. package/src/module/workflow/controller/stage.controller.ts +51 -51
  925. package/src/module/workflow/controller/task.controller.ts +77 -77
  926. package/src/module/workflow/controller/workflow-list-master.controller.ts +44 -44
  927. package/src/module/workflow/controller/workflow-meta.controller.ts +80 -80
  928. package/src/module/workflow/controller/workflow.controller.ts +67 -67
  929. package/src/module/workflow/entity/action-category.entity.ts +33 -38
  930. package/src/module/workflow/entity/action-data.entity.ts +51 -55
  931. package/src/module/workflow/entity/action-resources-mapping.entity.ts +21 -29
  932. package/src/module/workflow/entity/action-template-mapping.entity.ts +12 -17
  933. package/src/module/workflow/entity/action.entity.ts +48 -53
  934. package/src/module/workflow/entity/activity-log.entity.ts +39 -43
  935. package/src/module/workflow/entity/comm-template.entity.ts +38 -43
  936. package/src/module/workflow/entity/entity-modification.entity.ts +33 -38
  937. package/src/module/workflow/entity/form.entity.ts +21 -25
  938. package/src/module/workflow/entity/stage-action-mapping.entity.ts +12 -17
  939. package/src/module/workflow/entity/stage-group.entity.ts +18 -23
  940. package/src/module/workflow/entity/stage-movement-data.entity.ts +33 -38
  941. package/src/module/workflow/entity/stage.entity.ts +15 -20
  942. package/src/module/workflow/entity/task-data.entity.ts +84 -88
  943. package/src/module/workflow/entity/template-attach-mapper.entity.ts +30 -30
  944. package/src/module/workflow/entity/workflow-data.entity.ts +6 -11
  945. package/src/module/workflow/entity/workflow-level-mapping.entity.ts +18 -18
  946. package/src/module/workflow/entity/workflow.entity.ts +15 -20
  947. package/src/module/workflow/repository/action-category.repository.ts +79 -79
  948. package/src/module/workflow/repository/action-data.repository.ts +345 -354
  949. package/src/module/workflow/repository/action.repository.ts +339 -339
  950. package/src/module/workflow/repository/activity-log.repository.ts +148 -148
  951. package/src/module/workflow/repository/comm-template.repository.ts +157 -157
  952. package/src/module/workflow/repository/form-master.repository.ts +50 -50
  953. package/src/module/workflow/repository/stage-group.repository.ts +186 -186
  954. package/src/module/workflow/repository/stage-movement.repository.ts +217 -217
  955. package/src/module/workflow/repository/stage.repository.ts +160 -160
  956. package/src/module/workflow/repository/task.repository.ts +154 -156
  957. package/src/module/workflow/repository/workflow.repository.ts +42 -42
  958. package/src/module/workflow/service/action-category.service.ts +33 -33
  959. package/src/module/workflow/service/action-data.service.ts +63 -62
  960. package/src/module/workflow/service/action-resources-mapping.service.ts +10 -10
  961. package/src/module/workflow/service/action-template-mapping.service.ts +137 -137
  962. package/src/module/workflow/service/action.service.ts +300 -302
  963. package/src/module/workflow/service/activity-log.service.ts +107 -107
  964. package/src/module/workflow/service/comm-template.service.ts +179 -181
  965. package/src/module/workflow/service/entity-modification.service.ts +55 -61
  966. package/src/module/workflow/service/form-master.service.ts +35 -35
  967. package/src/module/workflow/service/populate-workflow.service.ts +320 -325
  968. package/src/module/workflow/service/stage-action-mapping.service.ts +5 -5
  969. package/src/module/workflow/service/stage-group.service.ts +325 -325
  970. package/src/module/workflow/service/stage.service.ts +197 -197
  971. package/src/module/workflow/service/task.service.ts +547 -551
  972. package/src/module/workflow/service/workflow-list-master.service.ts +68 -68
  973. package/src/module/workflow/service/workflow-meta.service.ts +635 -640
  974. package/src/module/workflow/service/workflow.service.ts +213 -213
  975. package/src/module/workflow/workflow.module.ts +182 -180
  976. package/src/module/workflow-automation/SCHEDULING_GUIDE.md +145 -145
  977. package/src/module/workflow-automation/controller/workflow-automation.controller.ts +43 -43
  978. package/src/module/workflow-automation/entity/workflow-automation-action.entity.ts +26 -26
  979. package/src/module/workflow-automation/entity/workflow-automation.entity.ts +35 -40
  980. package/src/module/workflow-automation/interface/action.decorator.ts +7 -7
  981. package/src/module/workflow-automation/interface/action.interface.ts +5 -5
  982. package/src/module/workflow-automation/service/action-registery.service.ts +35 -35
  983. package/src/module/workflow-automation/service/schedule-handler.service.ts +167 -168
  984. package/src/module/workflow-automation/service/workflow-automation-engine.service.ts +219 -219
  985. package/src/module/workflow-automation/service/workflow-automation.service.ts +486 -474
  986. package/src/module/workflow-automation/workflow-automation.module.ts +55 -54
  987. package/src/module/workflow-schedule/INSTALLATION.md +244 -244
  988. package/src/module/workflow-schedule/MULTI_PROJECT_GUIDE.md +196 -196
  989. package/src/module/workflow-schedule/README.md +422 -422
  990. package/src/module/workflow-schedule/constants/schedule.constants.ts +48 -48
  991. package/src/module/workflow-schedule/controller/workflow-schedule.controller.ts +253 -253
  992. package/src/module/workflow-schedule/docs/CLAUDE_CODE_GUIDE.md +510 -510
  993. package/src/module/workflow-schedule/docs/CLAUDE_CODE_PROMPT.md +362 -362
  994. package/src/module/workflow-schedule/docs/RUN_CLAUDE_CODE.sh +68 -68
  995. package/src/module/workflow-schedule/dto/create-schedule.dto.ts +147 -147
  996. package/src/module/workflow-schedule/dto/get-execution-logs.dto.ts +119 -119
  997. package/src/module/workflow-schedule/dto/update-schedule.dto.ts +96 -96
  998. package/src/module/workflow-schedule/entities/scheduled-workflow.entity.ts +148 -148
  999. package/src/module/workflow-schedule/entities/workflow-execution-log.entity.ts +154 -154
  1000. package/src/module/workflow-schedule/interfaces/schedule-job-data.interface.ts +52 -53
  1001. package/src/module/workflow-schedule/interfaces/workflow-schedule-options.interface.ts +12 -12
  1002. package/src/module/workflow-schedule/processors/schedule.processor.ts +616 -620
  1003. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +588 -597
  1004. package/src/module/workflow-schedule/workflow-schedule.module.ts +67 -67
  1005. package/src/resources/dev.properties.yaml +34 -31
  1006. package/src/resources/local.properties.yaml +27 -27
  1007. package/src/resources/properties.module.ts +12 -12
  1008. package/src/resources/properties.yaml.ts +11 -11
  1009. package/src/resources/uat.properties.yaml +31 -31
  1010. package/src/table.config.ts +153 -135
  1011. package/src/utils/dto/excel-data.dto.ts +14 -14
  1012. package/src/utils/dto/excelsheet-data.dto.ts +5 -5
  1013. package/src/utils/service/base64util.service.ts +18 -18
  1014. package/src/utils/service/clockIDGenUtil.service.ts +21 -21
  1015. package/src/utils/service/codeGenerator.service.ts +22 -22
  1016. package/src/utils/service/dateUtil.service.ts +17 -17
  1017. package/src/utils/service/encryptUtil.service.ts +97 -97
  1018. package/src/utils/service/excel-helper.service.ts +72 -72
  1019. package/src/utils/service/excelUtil.service.ts +15 -15
  1020. package/src/utils/service/file-util.service.ts +11 -11
  1021. package/src/utils/service/json-util.service.ts +23 -23
  1022. package/src/utils/service/loggingUtil.service.ts +88 -88
  1023. package/src/utils/service/reflection-helper.service.ts +62 -62
  1024. package/src/utils/service/wbsCodeGen.service.ts +8 -8
  1025. package/src/utils/utils.module.ts +27 -27
  1026. package/tsconfig.build.json +4 -4
  1027. package/tsconfig.json +24 -24
  1028. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +0 -6
  1029. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +0 -32
  1030. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +0 -1
  1031. package/dist/module/filter/service/flatjson-filter.service.d.ts +0 -32
  1032. package/dist/module/filter/service/flatjson-filter.service.js +0 -632
  1033. package/dist/module/filter/service/flatjson-filter.service.js.map +0 -1
  1034. package/dist/module/meta/controller/app-master.controller.js.map +0 -1
  1035. package/dist/module/meta/entity/app-master.entity.d.ts +0 -13
  1036. package/dist/module/meta/entity/app-master.entity.js.map +0 -1
  1037. package/dist/module/meta/repository/app-master.repository.js.map +0 -1
  1038. package/dist/module/meta/service/app-master.service.js.map +0 -1
  1039. package/dist/module/meta/service/populate-meta.service.d.ts +0 -13
  1040. package/dist/module/meta/service/populate-meta.service.js.map +0 -1
  1041. package/dist/module/notification/repository/notification.repository.d.ts +0 -7
  1042. package/dist/module/notification/repository/notification.repository.js +0 -43
  1043. package/dist/module/notification/repository/notification.repository.js.map +0 -1
  1044. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +0 -41
  1045. package/src/module/filter/service/flatjson-filter.service.ts +0 -903
  1046. package/src/module/filter/test/flatjson-filter.service.spec.ts +0 -415
  1047. package/src/module/meta/repository/app-master.repository.ts +0 -20
  1048. package/src/module/notification/repository/notification.repository.ts +0 -33
@@ -1,640 +1,635 @@
1
- import { Inject, Injectable } from '@nestjs/common';
2
- import { ConfigService } from '@nestjs/config';
3
- import { InjectRepository } from '@nestjs/typeorm';
4
- import axios from 'axios';
5
- import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
6
- import { UserData } from 'src/module/user/entity/user.entity';
7
- import { In, Repository } from 'typeorm';
8
- import { StageMovementData } from '../entity/stage-movement-data.entity';
9
- import { ACTIVITY_CATEGORIES } from '../repository/activity-log.repository';
10
- import { StageMovementRepository } from '../repository/stage-movement.repository';
11
- import { TaskRepository } from '../repository/task.repository';
12
- import { ActionDataService } from './action-data.service';
13
- import { ActivityLogService } from './activity-log.service';
14
- import { EntityModificationService } from './entity-modification.service';
15
- import { TaskService } from './task.service';
16
- import { ActionCategory } from '../entity/action-category.entity';
17
- import { StageGroup } from '../entity/stage-group.entity';
18
- import { ActionDataEntity } from '../entity/action-data.entity';
19
- import { TaskDataEntity } from '../entity/task-data.entity';
20
-
21
- @Injectable()
22
- export class WorkflowMetaService extends EntityServiceImpl {
23
- constructor(
24
- @InjectRepository(StageMovementData)
25
- private readonly stageMovementRepo: Repository<StageMovementData>,
26
- private readonly stageMovementRepository: StageMovementRepository,
27
- private readonly taskRepository: TaskRepository,
28
- private readonly actionDataService: ActionDataService,
29
- @Inject('TaskService')
30
- private readonly taskService: TaskService,
31
- @Inject('ActivityLogService')
32
- private readonly activityLogService: ActivityLogService,
33
- @Inject('EntityModificationService')
34
- private readonly modificationService: EntityModificationService,
35
- private readonly configService: ConfigService,
36
- @InjectRepository(ActionCategory)
37
- private readonly actionCategoryRepo: Repository<ActionCategory>,
38
- @InjectRepository(StageGroup)
39
- private readonly stageGroupRepo: Repository<StageGroup>,
40
- @InjectRepository(ActionDataEntity)
41
- private readonly actionDataEntityRepository:Repository<ActionDataEntity>,
42
- @InjectRepository(TaskDataEntity)
43
- private readonly taskDataEntityRepository:Repository<TaskDataEntity>,
44
- ) {
45
- super();
46
- }
47
-
48
- // get first stage from stage table
49
- async getFirstStage(
50
- loggedInUser: UserData,
51
- mapped_entity_type: string,
52
- mapped_entity_id: number,
53
- ): Promise<any | null> {
54
- // step1 find in workflow_level_mapping if not found with current level_id and level_type search in for ORG
55
- // step2 find in stage_group => workflow_id
56
- // step3 find in stage => stage_group_id
57
- // step4 get first stage from stage table
58
- return this.stageMovementRepository.getFirstStage({
59
- loggedInUser,
60
- mapped_entity_type,
61
- mapped_entity_id,
62
- });
63
- }
64
-
65
- /**
66
- * Get the current active stage for a given mapped entity
67
- */
68
- async getCurrentStage(
69
- mapped_entity_type: string,
70
- mapped_entity_id: number,
71
- loggedInUser: UserData,
72
- ): Promise<any | null> {
73
- // Try to find the current stage movement entry
74
- const currentStage = await this.stageMovementRepo.findOne({
75
- where: {
76
- mapped_entity_type,
77
- mapped_entity_id,
78
- is_current: 'Y',
79
- },
80
- });
81
-
82
- if (!currentStage) {
83
- // Fetch the latest stage movement for the given entity
84
- const latestMovement = await this.stageMovementRepo.findOne({
85
- where: {
86
- mapped_entity_type,
87
- mapped_entity_id,
88
- },
89
- order: { id: 'DESC' }, // Get the most recent movement
90
- });
91
-
92
- if (!latestMovement) return null;
93
-
94
- let stageGroup = await this.stageGroupRepo.findOne({
95
- where: { id: latestMovement?.stage_group_id },
96
- });
97
-
98
- return {
99
- ...latestMovement,
100
- stage_group_name: stageGroup?.name,
101
- };
102
- }
103
-
104
- // get group name for the current stage
105
- const stageGroup = await this.stageGroupRepo.findOne({
106
- where: { id: currentStage?.stage_group_id },
107
- });
108
-
109
- // Return the found or newly created current stage movement
110
- return {
111
- ...currentStage,
112
- stage_group_name: stageGroup?.name,
113
- };
114
- }
115
-
116
- /**
117
- * Get next stage ID based on current stage
118
- * (Stub logic – replace with real stage transition resolution)
119
- */
120
- async getNextStage(currentStage: any): Promise<any | null> {
121
- // get all stage for that stage group
122
- const nextStage =
123
- await this.stageMovementRepository.getNextStageOrFirstOfNextGroup(
124
- currentStage?.stage_group_id,
125
- currentStage?.stage_id,
126
- );
127
-
128
- if (!nextStage) {
129
- return { hasNextStage: false, nextStage: null };
130
- }
131
-
132
- const stageGroup = await this.stageGroupRepo.findOne({
133
- where: {
134
- id: nextStage?.stage_group_id,
135
- },
136
- });
137
-
138
- return {
139
- hasNextStage: !!nextStage,
140
- nextStage: { ...nextStage, stage_group_name: stageGroup?.name },
141
- };
142
- }
143
-
144
- /**
145
- * Move mapped entity to the next stage in the workflow
146
- */
147
- async moveToNextStage(
148
- mapped_entity_type: string,
149
- mapped_entity_id: number,
150
- loggedInUser: UserData,
151
- reason_code?: string,
152
- remark?: string,
153
- ): Promise<string> {
154
- const now = new Date();
155
- let currentStage = await this.getCurrentStage(
156
- mapped_entity_type,
157
- mapped_entity_id,
158
- loggedInUser,
159
- );
160
-
161
- if (currentStage) {
162
- await this.taskService.createSystemNote(
163
- {
164
- reason_code: reason_code || '',
165
- remark: remark || '',
166
- mapped_entity_id,
167
- stage_id: currentStage.stage_id,
168
- action_id: currentStage.action_id,
169
- stage_group_id: currentStage.stage_group_id,
170
- },
171
- loggedInUser,
172
- );
173
- }
174
-
175
- // Case 1: First stage – initialize
176
- if (!currentStage) {
177
- const getAllResult = await this.getFirstStage(
178
- loggedInUser,
179
- mapped_entity_type,
180
- mapped_entity_id,
181
- );
182
-
183
- const { mappingUsed, stageGroup, firstStage } = getAllResult;
184
-
185
- currentStage = await this.stageMovementRepo.save({
186
- entity_type: 'WFSA',
187
- mapped_entity_type,
188
- mapped_entity_id,
189
- name: firstStage.name,
190
- status: firstStage.status,
191
- current_user_id: loggedInUser.id,
192
- stage_action_mapping_id: firstStage.id,
193
- organization_id: loggedInUser.organization_id,
194
- enterprise_id: loggedInUser.enterprise_id,
195
- stage_group_id: stageGroup.id,
196
- stage_id: firstStage.id,
197
- start_date: new Date(),
198
- is_current: 'Y',
199
- });
200
-
201
- await this.populateActionService(
202
- currentStage.stage_id,
203
- loggedInUser,
204
- mapped_entity_id,
205
- mapped_entity_type,
206
- );
207
- return `Initialized workflow with first stage (Stage ID: ${firstStage.id}).`;
208
- }
209
-
210
- // Case 2: Has next stage – move forward
211
- const stageData = await this.getNextStage(currentStage);
212
-
213
- if (stageData.hasNextStage) {
214
- const { nextStage } = stageData;
215
-
216
- // NEW: Log stage group completion if group changes
217
- if (nextStage.stage_group_id !== currentStage.stage_group_id) {
218
- try {
219
- // stage action category SGCP
220
- // if current stage actions contain any action with action_category as SGCP then set the status of that action to completed
221
- const stageActions =
222
- await this.stageMovementRepository.getAllActionByStageId(
223
- currentStage.stage_id,
224
- );
225
-
226
- for (const action of stageActions) {
227
- const actionCategoryRepo = this.reflectionHelper.getRepoService('ActionCategory');
228
- const actionCategory = await actionCategoryRepo.findOne({
229
- where: {
230
- id: Number(action.action_category),
231
- },
232
- });
233
-
234
- if (actionCategory?.code == 'SGCP') {
235
- await this.taskRepository.updateTaskStatus(
236
- loggedInUser,
237
- mapped_entity_type,
238
- mapped_entity_id,
239
- currentStage.stage_id,
240
- action.id,
241
- );
242
- }
243
- }
244
-
245
- await this.activityLogService.logActivity(
246
- {
247
- mapped_entity_id,
248
- mapped_entity_type,
249
- title: 'Stage Group Completed',
250
- description: `Stage Group changed from ${currentStage.stage_group_name} to ${nextStage.stage_group_name}.`,
251
- action: 'completed',
252
- category: ACTIVITY_CATEGORIES.STAGEGROUP,
253
- appcode: loggedInUser.appcode,
254
- },
255
- loggedInUser,
256
- );
257
- } catch (error) {
258
- console.error(
259
- 'Failed to log stage group completion:',
260
- error?.message || error,
261
- );
262
- }
263
- }
264
-
265
- // Close current stage
266
- currentStage.end_date = now;
267
- currentStage.is_current = 'N';
268
- await this.stageMovementRepo.save(currentStage);
269
-
270
- // Insert next stage
271
- await this.stageMovementRepo.save({
272
- entity_type: 'WFSA',
273
- mapped_entity_type,
274
- mapped_entity_id,
275
- name: nextStage.name,
276
- status: nextStage.status,
277
- current_user_id: loggedInUser.id,
278
- stage_action_mapping_id: nextStage.id,
279
- organization_id: loggedInUser.organization_id,
280
- enterprise_id: loggedInUser.enterprise_id,
281
- start_date: now,
282
- stage_group_id: nextStage?.stage_group_id,
283
- stage_id: nextStage.id,
284
- is_current: 'Y',
285
- });
286
-
287
- await this.populateActionService(
288
- stageData.nextStage.id,
289
- loggedInUser,
290
- mapped_entity_id,
291
- mapped_entity_type,
292
- );
293
-
294
- // Stage completion log
295
- try {
296
- await this.activityLogService.logActivity(
297
- {
298
- mapped_entity_id: mapped_entity_id,
299
- mapped_entity_type: mapped_entity_type,
300
- title: 'Stage Completed',
301
- description: `Stage changed from ${currentStage.name} to ${nextStage.name}.`,
302
- action: 'status',
303
- category: ACTIVITY_CATEGORIES.STAGE,
304
- appcode: loggedInUser.appcode,
305
- },
306
- loggedInUser,
307
- );
308
- } catch (error) {
309
- console.error(
310
- 'Failed to log activity for stage completion:',
311
- error?.message || error,
312
- );
313
- }
314
- return `Moved to next stage (Stage ID: ${nextStage.id}).`;
315
- }
316
-
317
- // Case 3: No next stage – mark workflow as done
318
- currentStage.end_date = now;
319
- currentStage.is_current = 'N';
320
- await this.stageMovementRepo.save(currentStage);
321
-
322
- return 'Workflow completed. No next stage available.';
323
- }
324
-
325
- async populateActionService(
326
- stage_id: number,
327
- loggedInUser: UserData,
328
- mapped_entity_id: number,
329
- mapped_entity_type: string,
330
- ): Promise<any> {
331
- const actions =
332
- await this.stageMovementRepository.getAllActionByStageId(stage_id);
333
- // Populate the action service with the retrieved actions
334
-
335
- if (!actions || actions.length === 0) {
336
- return 'No actions found for this stage.';
337
- }
338
-
339
- // check whether first action's action_category is owner_assignment and assignment_type is AUTO_ASSIGN
340
- const firstAction = actions[0];
341
-
342
- const actionCategory = await this.actionCategoryRepo.findOne({
343
- where: {
344
- id: Number(firstAction.action_category),
345
- },
346
- });
347
-
348
- const listMasterItemsRepo = this.reflectionHelper.getRepoService('ListMasterItems');
349
-
350
- const assignmentType = await listMasterItemsRepo.findOne({
351
- where: {
352
- id: Number(firstAction.assignment_type),
353
- },
354
- });
355
-
356
- // save in action data
357
- await this.actionDataService.saveActionData(
358
- actions,
359
- loggedInUser,
360
- mapped_entity_id,
361
- mapped_entity_type,
362
- );
363
-
364
- // save in task data
365
- await this.taskService.saveActionData(
366
- actions,
367
- loggedInUser,
368
- mapped_entity_id,
369
- mapped_entity_type,
370
- );
371
-
372
- if (
373
- actionCategory?.code == 'OWAS' &&
374
- assignmentType[0]?.value == 'round_robin'
375
- ) {
376
- console.log('Auto-assigning owner based on round-robin assignment type');
377
- await this.assignLead(
378
- loggedInUser,
379
- mapped_entity_id,
380
- mapped_entity_type,
381
- stage_id,
382
- actions,
383
- );
384
- }
385
- }
386
-
387
- async updateLeadOwner(entityData, loggedInUser) {
388
- const { lead_id, lead_owner, stage_id, entity_type } = entityData;
389
- const updatedData = {
390
- id: lead_id,
391
- lead_owner: lead_owner,
392
- entity_type: entity_type,
393
- };
394
- entityData = updatedData;
395
-
396
- this.modificationService.logModification(
397
- {
398
- entity_type: 'ENMD',
399
- mapped_entity_type: entity_type,
400
- mapped_entity_id: lead_id,
401
- attribute_key: 'lead_owner',
402
- new_value: lead_owner,
403
- old_value: entityData.lead_owner,
404
- remarks: entityData.remarks,
405
- reason_code: entityData.reason_code,
406
- stage_id: stage_id,
407
- action_id: entityData.action_id,
408
- },
409
- loggedInUser,
410
- );
411
-
412
- const leadData: any = await this.getEntityData(
413
- 'LEAD',
414
- lead_id,
415
- loggedInUser,
416
- );
417
-
418
- const listMasterItemsRepo = this.reflectionHelper.getRepoService('ListMasterItems');
419
- const unassignedListMasterItemData = await listMasterItemsRepo.find({
420
- where: {
421
- listtype: 'LEST',
422
- enterprise_id: loggedInUser.enterprise_id,
423
- value: In(['unassigned', 'active'])
424
- }
425
- });
426
-
427
- // Find the IDs explicitly
428
- const unassignedId = unassignedListMasterItemData.find(
429
- (item) => item.name.toLowerCase() === 'unassigned',
430
- )?.id;
431
-
432
- const activeId = unassignedListMasterItemData.find(
433
- (item) => item.name.toLowerCase() === 'active',
434
- )?.id;
435
-
436
- // Use unassignedId for comparison
437
- if (leadData?.lead_status === unassignedId) {
438
- leadData.lead_status = activeId;
439
- }
440
-
441
- const result = await super.updateEntity(
442
- {
443
- ...entityData,
444
- status: leadData?.lead_status,
445
- lead_status: leadData?.lead_status,
446
- },
447
- loggedInUser,
448
- );
449
-
450
- await this.actionDataEntityRepository
451
- .createQueryBuilder()
452
- .update()
453
- .set({ user_id: lead_owner })
454
- .where("mapped_entity_id = :leadId", { leadId: lead_id })
455
- .andWhere("mapped_entity_type = :entityType", { entityType: entity_type })
456
- .andWhere("stage_id = :stageId", { stageId: stage_id })
457
- .andWhere("(is_current = 'Y' OR is_current IS NULL)")
458
- .execute();
459
-
460
- const leadMeetingRepo = this.reflectionHelper.getRepoService('LeadScheduleMeet');
461
-
462
- await leadMeetingRepo
463
- .createQueryBuilder()
464
- .update()
465
- .set({ user_id: lead_owner })
466
- .where("stage_id = :stageId", { stageId: stage_id })
467
- .andWhere("mapped_entity_id = :leadId", { leadId: lead_id })
468
- .andWhere("mapped_entity_type = :entityType", { entityType: "LEAD" })
469
- .andWhere("(status = 'scheduled' OR status = 'rescheduled')")
470
- .execute();
471
-
472
- const taskRows = await this.taskDataEntityRepository.find({
473
- where: {
474
- mapped_entity_id: lead_id,
475
- mapped_entity_type: entity_type,
476
- stage_id
477
- }
478
- });
479
-
480
- for (const task of taskRows) {
481
- const statusRows = await listMasterItemsRepo.findOne({
482
- where: {
483
- id: task.status
484
- }
485
- });
486
-
487
- const statusName = statusRows?.value?.toLowerCase() || '';
488
- if (
489
- ['todo', 'in_progress'].includes(statusName) ||
490
- statusName === 'todo'
491
- ) {
492
-
493
- await this.taskDataEntityRepository.update(task.id,{
494
- user_id: lead_owner,
495
- task_owner: lead_owner
496
- });
497
- }
498
- }
499
-
500
- let leadOwnerName;
501
-
502
- try {
503
- const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
504
-
505
- // Prepare query params
506
- const queryParams = new URLSearchParams({
507
- loggedInUser: JSON.stringify(loggedInUser),
508
- }).toString();
509
-
510
- const url = `${baseUrl}/entity/public/getById/${entityData?.lead_owner}?entity_type=USR&${queryParams}`;
511
-
512
- const response = await axios.get(url);
513
-
514
- leadOwnerName = response.data;
515
- } catch (error) {
516
- console.error('Internal Entity API call failed:', error.message);
517
- }
518
-
519
- try {
520
- const logData = {
521
- mapped_entity_id: lead_id,
522
- mapped_entity_type: 'LEAD',
523
- title: 'Owner Assigned',
524
- description: leadData?.lead_owner
525
- ? `${leadOwnerName?.name} reassigned as Lead owner.`
526
- : `${leadOwnerName?.name} assigned as Lead owner.`,
527
- action: 'assign',
528
- category: ACTIVITY_CATEGORIES.ASSIGN,
529
- appcode: loggedInUser.appcode,
530
- };
531
-
532
- await this.activityLogService.logActivity(logData, loggedInUser);
533
- } catch (error) {
534
- console.error(
535
- 'Failed to log activity for meeting:',
536
- error?.message || error,
537
- );
538
- // Logging should not block main flow
539
- }
540
- return result;
541
- }
542
-
543
- async assignLead(
544
- loggedInUser: UserData,
545
- mapped_entity_id: number,
546
- mapped_entity_type: string,
547
- stage_id: number,
548
- actions: any[],
549
- ): Promise<number> {
550
- const { organization_id, level_id, level_type } = loggedInUser;
551
-
552
- let owners = [] as any;
553
-
554
- try {
555
- const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
556
-
557
- // Prepare query params
558
- const queryParams = new URLSearchParams({
559
- loggedInUser: JSON.stringify(loggedInUser),
560
- }).toString();
561
-
562
- const { level_id } = loggedInUser;
563
-
564
- const url = `${baseUrl}/users/public/lead-owners/?entity_type=USR&${queryParams}`;
565
-
566
- const response = await axios.get(url);
567
-
568
- owners = response.data;
569
-
570
- // The API response is likely a JSON object, not an array
571
- } catch (error) {
572
- console.error('Internal Entity API call failed:', error.message);
573
- }
574
-
575
- if (!owners?.length)
576
- console.log('No eligible owners found for lead assignment.');
577
- const userIds = owners?.map((o) => Number(o.id)); // normalize to numbers
578
-
579
- // 2) Find the last assigned *eligible* owner (use IN (...))
580
- const placeholders = userIds.map(() => '?').join(',');
581
-
582
- const leadRepo = this.reflectionHelper.getRepoService('CRMLead');
583
- const lastRow = await leadRepo
584
- .createQueryBuilder("cl")
585
- .select("cl.lead_owner", "lead_owner")
586
- .where("cl.organization_id = :orgId", { orgId: organization_id })
587
- .andWhere("cl.level_id = :levelId", { levelId: Number(level_id) })
588
- .andWhere("cl.level_type = :levelType", { levelType: level_type })
589
- .andWhere("cl.lead_owner IN (:...owners)", { owners: userIds })
590
- .orderBy("cl.created_date", "DESC")
591
- .limit(1)
592
- .getRawOne();
593
-
594
- const lastAssigned = lastRow.length ? Number(lastRow[0].lead_owner) : null;
595
-
596
- // 3) Compute next user in round-robin
597
- const lastIdx = lastAssigned != null ? userIds.indexOf(lastAssigned) : -1;
598
- const nextIdx = (lastIdx + 1) % userIds.length;
599
- const nextUser = userIds[nextIdx];
600
-
601
- //4) Update lead owner in the lead table no need because we are updating lead owner in updateLeadOwner method
602
- console.log(`Assigning lead to user ID: ${nextUser}`);
603
-
604
- const firstAction = actions[0];
605
-
606
- // update lead owner status
607
- await this.updateLeadOwner(
608
- {
609
- lead_id: mapped_entity_id,
610
- lead_owner: nextUser,
611
- stage_id: stage_id,
612
- entity_type: mapped_entity_type,
613
- action_id: firstAction.id,
614
- },
615
- loggedInUser,
616
- );
617
-
618
- // move task
619
- await this.taskService.moveTask(loggedInUser, {
620
- mapped_entity_type,
621
- mapped_entity_id,
622
- stage_id,
623
- action_id: firstAction.id,
624
- });
625
-
626
- // if it has only one action then move next stage
627
- if (actions.length == 1) {
628
- console.log(
629
- 'Only one action present and it is owner assignment. Moving to next stage.',
630
- );
631
- await this.moveToNextStage(
632
- mapped_entity_type,
633
- mapped_entity_id,
634
- loggedInUser,
635
- );
636
- }
637
-
638
- return nextUser;
639
- }
640
- }
1
+ import { Inject, Injectable } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ import { InjectRepository } from '@nestjs/typeorm';
4
+ import axios from 'axios';
5
+ import { EntityServiceImpl } from 'src/module/meta/service/entity-service-impl.service';
6
+ import { UserData } from 'src/module/user/entity/user.entity';
7
+ import { In, Repository } from 'typeorm';
8
+ import { StageMovementData } from '../entity/stage-movement-data.entity';
9
+ import { ACTIVITY_CATEGORIES } from '../repository/activity-log.repository';
10
+ import { StageMovementRepository } from '../repository/stage-movement.repository';
11
+ import { TaskRepository } from '../repository/task.repository';
12
+ import { ActionDataService } from './action-data.service';
13
+ import { ActivityLogService } from './activity-log.service';
14
+ import { EntityModificationService } from './entity-modification.service';
15
+ import { TaskService } from './task.service';
16
+ import { ActionCategory } from '../entity/action-category.entity';
17
+ import { StageGroup } from '../entity/stage-group.entity';
18
+ import { ActionDataEntity } from '../entity/action-data.entity';
19
+ import { TaskDataEntity } from '../entity/task-data.entity';
20
+
21
+ @Injectable()
22
+ export class WorkflowMetaService extends EntityServiceImpl {
23
+ constructor(
24
+ @InjectRepository(StageMovementData)
25
+ private readonly stageMovementRepo: Repository<StageMovementData>,
26
+ private readonly stageMovementRepository: StageMovementRepository,
27
+ private readonly taskRepository: TaskRepository,
28
+ private readonly actionDataService: ActionDataService,
29
+ @Inject('TaskService')
30
+ private readonly taskService: TaskService,
31
+ @Inject('ActivityLogService')
32
+ private readonly activityLogService: ActivityLogService,
33
+ @Inject('EntityModificationService')
34
+ private readonly modificationService: EntityModificationService,
35
+ private readonly configService: ConfigService,
36
+ @InjectRepository(ActionCategory)
37
+ private readonly actionCategoryRepo: Repository<ActionCategory>,
38
+ @InjectRepository(StageGroup)
39
+ private readonly stageGroupRepo: Repository<StageGroup>,
40
+ @InjectRepository(ActionDataEntity)
41
+ private readonly actionDataEntityRepository:Repository<ActionDataEntity>,
42
+ @InjectRepository(TaskDataEntity)
43
+ private readonly taskDataEntityRepository:Repository<TaskDataEntity>,
44
+ ) {
45
+ super();
46
+ }
47
+
48
+ // get first stage from stage table
49
+ async getFirstStage(
50
+ loggedInUser: UserData,
51
+ mapped_entity_type: string,
52
+ mapped_entity_id: number,
53
+ ): Promise<any | null> {
54
+ // step1 find in workflow_level_mapping if not found with current level_id and level_type search in for ORG
55
+ // step2 find in stage_group => workflow_id
56
+ // step3 find in stage => stage_group_id
57
+ // step4 get first stage from stage table
58
+ return this.stageMovementRepository.getFirstStage({
59
+ loggedInUser,
60
+ mapped_entity_type,
61
+ mapped_entity_id,
62
+ });
63
+ }
64
+
65
+ /**
66
+ * Get the current active stage for a given mapped entity
67
+ */
68
+ async getCurrentStage(
69
+ mapped_entity_type: string,
70
+ mapped_entity_id: number,
71
+ loggedInUser: UserData,
72
+ ): Promise<any | null> {
73
+ // Try to find the current stage movement entry
74
+ const currentStage = await this.stageMovementRepo.findOne({
75
+ where: {
76
+ mapped_entity_type,
77
+ mapped_entity_id,
78
+ is_current: 'Y',
79
+ },
80
+ });
81
+
82
+ if (!currentStage) {
83
+ // Fetch the latest stage movement for the given entity
84
+ const latestMovement = await this.stageMovementRepo.findOne({
85
+ where: {
86
+ mapped_entity_type,
87
+ mapped_entity_id,
88
+ },
89
+ order: { id: 'DESC' }, // Get the most recent movement
90
+ });
91
+
92
+ if (!latestMovement) return null;
93
+
94
+ let stageGroup = await this.stageGroupRepo.findOne({
95
+ where: { id: latestMovement?.stage_group_id },
96
+ });
97
+
98
+ return {
99
+ ...latestMovement,
100
+ stage_group_name: stageGroup?.name,
101
+ };
102
+ }
103
+
104
+ // get group name for the current stage
105
+ const stageGroup = await this.stageGroupRepo.findOne({
106
+ where: { id: currentStage?.stage_group_id },
107
+ });
108
+
109
+ // Return the found or newly created current stage movement
110
+ return {
111
+ ...currentStage,
112
+ stage_group_name: stageGroup?.name,
113
+ };
114
+ }
115
+
116
+ /**
117
+ * Get next stage ID based on current stage
118
+ * (Stub logic – replace with real stage transition resolution)
119
+ */
120
+ async getNextStage(currentStage: any): Promise<any | null> {
121
+ // get all stage for that stage group
122
+ const nextStage =
123
+ await this.stageMovementRepository.getNextStageOrFirstOfNextGroup(
124
+ currentStage?.stage_group_id,
125
+ currentStage?.stage_id,
126
+ );
127
+
128
+ if (!nextStage) {
129
+ return { hasNextStage: false, nextStage: null };
130
+ }
131
+
132
+ const stageGroup = await this.stageGroupRepo.findOne({
133
+ where: {
134
+ id: nextStage?.stage_group_id,
135
+ },
136
+ });
137
+
138
+ return {
139
+ hasNextStage: !!nextStage,
140
+ nextStage: { ...nextStage, stage_group_name: stageGroup?.name },
141
+ };
142
+ }
143
+
144
+ /**
145
+ * Move mapped entity to the next stage in the workflow
146
+ */
147
+ async moveToNextStage(
148
+ mapped_entity_type: string,
149
+ mapped_entity_id: number,
150
+ loggedInUser: UserData,
151
+ reason_code?: string,
152
+ remark?: string,
153
+ ): Promise<string> {
154
+ const now = new Date();
155
+ let currentStage = await this.getCurrentStage(
156
+ mapped_entity_type,
157
+ mapped_entity_id,
158
+ loggedInUser,
159
+ );
160
+
161
+ if (currentStage) {
162
+ await this.taskService.createSystemNote(
163
+ {
164
+ reason_code: reason_code || '',
165
+ remark: remark || '',
166
+ mapped_entity_id,
167
+ stage_id: currentStage.stage_id,
168
+ action_id: currentStage.action_id,
169
+ stage_group_id: currentStage.stage_group_id,
170
+ },
171
+ loggedInUser,
172
+ );
173
+ }
174
+
175
+ // Case 1: First stage – initialize
176
+ if (!currentStage) {
177
+ const getAllResult = await this.getFirstStage(
178
+ loggedInUser,
179
+ mapped_entity_type,
180
+ mapped_entity_id,
181
+ );
182
+
183
+ const { mappingUsed, stageGroup, firstStage } = getAllResult;
184
+
185
+ currentStage = await this.stageMovementRepo.save({
186
+ entity_type: 'WFSA',
187
+ mapped_entity_type,
188
+ mapped_entity_id,
189
+ name: firstStage.name,
190
+ status: firstStage.status,
191
+ current_user_id: loggedInUser.id,
192
+ stage_action_mapping_id: firstStage.id,
193
+ enterprise_id: loggedInUser.enterprise_id,
194
+ stage_group_id: stageGroup.id,
195
+ stage_id: firstStage.id,
196
+ start_date: new Date(),
197
+ is_current: 'Y',
198
+ });
199
+
200
+ await this.populateActionService(
201
+ currentStage.stage_id,
202
+ loggedInUser,
203
+ mapped_entity_id,
204
+ mapped_entity_type,
205
+ );
206
+ return `Initialized workflow with first stage (Stage ID: ${firstStage.id}).`;
207
+ }
208
+
209
+ // Case 2: Has next stage – move forward
210
+ const stageData = await this.getNextStage(currentStage);
211
+
212
+ if (stageData.hasNextStage) {
213
+ const { nextStage } = stageData;
214
+
215
+ // ✅ NEW: Log stage group completion if group changes
216
+ if (nextStage.stage_group_id !== currentStage.stage_group_id) {
217
+ try {
218
+ // stage action category SGCP
219
+ // if current stage actions contain any action with action_category as SGCP then set the status of that action to completed
220
+ const stageActions =
221
+ await this.stageMovementRepository.getAllActionByStageId(
222
+ currentStage.stage_id,
223
+ );
224
+
225
+ for (const action of stageActions) {
226
+ const actionCategoryRepo = this.reflectionHelper.getRepoService('ActionCategory');
227
+ const actionCategory = await actionCategoryRepo.findOne({
228
+ where: {
229
+ id: Number(action.action_category),
230
+ },
231
+ });
232
+
233
+ if (actionCategory?.code == 'SGCP') {
234
+ await this.taskRepository.updateTaskStatus(
235
+ loggedInUser,
236
+ mapped_entity_type,
237
+ mapped_entity_id,
238
+ currentStage.stage_id,
239
+ action.id,
240
+ );
241
+ }
242
+ }
243
+
244
+ await this.activityLogService.logActivity(
245
+ {
246
+ mapped_entity_id,
247
+ mapped_entity_type,
248
+ title: 'Stage Group Completed',
249
+ description: `Stage Group changed from ${currentStage.stage_group_name} to ${nextStage.stage_group_name}.`,
250
+ action: 'completed',
251
+ category: ACTIVITY_CATEGORIES.STAGEGROUP,
252
+ },
253
+ loggedInUser,
254
+ );
255
+ } catch (error) {
256
+ console.error(
257
+ 'Failed to log stage group completion:',
258
+ error?.message || error,
259
+ );
260
+ }
261
+ }
262
+
263
+ // Close current stage
264
+ currentStage.end_date = now;
265
+ currentStage.is_current = 'N';
266
+ await this.stageMovementRepo.save(currentStage);
267
+
268
+ // Insert next stage
269
+ await this.stageMovementRepo.save({
270
+ entity_type: 'WFSA',
271
+ mapped_entity_type,
272
+ mapped_entity_id,
273
+ name: nextStage.name,
274
+ status: nextStage.status,
275
+ current_user_id: loggedInUser.id,
276
+ stage_action_mapping_id: nextStage.id,
277
+ enterprise_id: loggedInUser.enterprise_id,
278
+ start_date: now,
279
+ stage_group_id: nextStage?.stage_group_id,
280
+ stage_id: nextStage.id,
281
+ is_current: 'Y',
282
+ });
283
+
284
+ await this.populateActionService(
285
+ stageData.nextStage.id,
286
+ loggedInUser,
287
+ mapped_entity_id,
288
+ mapped_entity_type,
289
+ );
290
+
291
+ // Stage completion log
292
+ try {
293
+ await this.activityLogService.logActivity(
294
+ {
295
+ mapped_entity_id: mapped_entity_id,
296
+ mapped_entity_type: mapped_entity_type,
297
+ title: 'Stage Completed',
298
+ description: `Stage changed from ${currentStage.name} to ${nextStage.name}.`,
299
+ action: 'status',
300
+ category: ACTIVITY_CATEGORIES.STAGE,
301
+ },
302
+ loggedInUser,
303
+ );
304
+ } catch (error) {
305
+ console.error(
306
+ 'Failed to log activity for stage completion:',
307
+ error?.message || error,
308
+ );
309
+ }
310
+ return `Moved to next stage (Stage ID: ${nextStage.id}).`;
311
+ }
312
+
313
+ // Case 3: No next stage – mark workflow as done
314
+ currentStage.end_date = now;
315
+ currentStage.is_current = 'N';
316
+ await this.stageMovementRepo.save(currentStage);
317
+
318
+ return 'Workflow completed. No next stage available.';
319
+ }
320
+
321
+ async populateActionService(
322
+ stage_id: number,
323
+ loggedInUser: UserData,
324
+ mapped_entity_id: number,
325
+ mapped_entity_type: string,
326
+ ): Promise<any> {
327
+ const actions =
328
+ await this.stageMovementRepository.getAllActionByStageId(stage_id);
329
+ // Populate the action service with the retrieved actions
330
+
331
+ if (!actions || actions.length === 0) {
332
+ return 'No actions found for this stage.';
333
+ }
334
+
335
+ // check whether first action's action_category is owner_assignment and assignment_type is AUTO_ASSIGN
336
+ const firstAction = actions[0];
337
+
338
+ const actionCategory = await this.actionCategoryRepo.findOne({
339
+ where: {
340
+ id: Number(firstAction.action_category),
341
+ },
342
+ });
343
+
344
+ const listMasterItemsRepo = this.reflectionHelper.getRepoService('ListMasterItems');
345
+
346
+ const assignmentType = await listMasterItemsRepo.findOne({
347
+ where: {
348
+ id: Number(firstAction.assignment_type),
349
+ },
350
+ });
351
+
352
+ // save in action data
353
+ await this.actionDataService.saveActionData(
354
+ actions,
355
+ loggedInUser,
356
+ mapped_entity_id,
357
+ mapped_entity_type,
358
+ );
359
+
360
+ // save in task data
361
+ await this.taskService.saveActionData(
362
+ actions,
363
+ loggedInUser,
364
+ mapped_entity_id,
365
+ mapped_entity_type,
366
+ );
367
+
368
+ if (
369
+ actionCategory?.code == 'OWAS' &&
370
+ assignmentType[0]?.value == 'round_robin'
371
+ ) {
372
+ console.log('Auto-assigning owner based on round-robin assignment type');
373
+ await this.assignLead(
374
+ loggedInUser,
375
+ mapped_entity_id,
376
+ mapped_entity_type,
377
+ stage_id,
378
+ actions,
379
+ );
380
+ }
381
+ }
382
+
383
+ async updateLeadOwner(entityData, loggedInUser) {
384
+ const { lead_id, lead_owner, stage_id, entity_type } = entityData;
385
+ const updatedData = {
386
+ id: lead_id,
387
+ lead_owner: lead_owner,
388
+ entity_type: entity_type,
389
+ };
390
+ entityData = updatedData;
391
+
392
+ this.modificationService.logModification(
393
+ {
394
+ entity_type: 'ENMD',
395
+ mapped_entity_type: entity_type,
396
+ mapped_entity_id: lead_id,
397
+ attribute_key: 'lead_owner',
398
+ new_value: lead_owner,
399
+ old_value: entityData.lead_owner,
400
+ remarks: entityData.remarks,
401
+ reason_code: entityData.reason_code,
402
+ stage_id: stage_id,
403
+ action_id: entityData.action_id,
404
+ },
405
+ loggedInUser,
406
+ );
407
+
408
+ const leadData: any = await this.getEntityData(
409
+ 'LEAD',
410
+ lead_id,
411
+ loggedInUser,
412
+ );
413
+
414
+ const listMasterItemsRepo = this.reflectionHelper.getRepoService('ListMasterItems');
415
+ const unassignedListMasterItemData = await listMasterItemsRepo.find({
416
+ where: {
417
+ listtype: 'LEST',
418
+ enterprise_id: loggedInUser.enterprise_id,
419
+ value: In(['unassigned', 'active'])
420
+ }
421
+ });
422
+
423
+ // Find the IDs explicitly
424
+ const unassignedId = unassignedListMasterItemData.find(
425
+ (item) => item.name.toLowerCase() === 'unassigned',
426
+ )?.id;
427
+
428
+ const activeId = unassignedListMasterItemData.find(
429
+ (item) => item.name.toLowerCase() === 'active',
430
+ )?.id;
431
+
432
+ // Use unassignedId for comparison
433
+ if (leadData?.lead_status === unassignedId) {
434
+ leadData.lead_status = activeId;
435
+ }
436
+
437
+ const result = await super.updateEntity(
438
+ {
439
+ ...entityData,
440
+ status: leadData?.lead_status,
441
+ lead_status: leadData?.lead_status,
442
+ },
443
+ loggedInUser,
444
+ );
445
+
446
+ await this.actionDataEntityRepository
447
+ .createQueryBuilder()
448
+ .update()
449
+ .set({ user_id: lead_owner })
450
+ .where("mapped_entity_id = :leadId", { leadId: lead_id })
451
+ .andWhere("mapped_entity_type = :entityType", { entityType: entity_type })
452
+ .andWhere("stage_id = :stageId", { stageId: stage_id })
453
+ .andWhere("(is_current = 'Y' OR is_current IS NULL)")
454
+ .execute();
455
+
456
+ const leadMeetingRepo = this.reflectionHelper.getRepoService('LeadScheduleMeet');
457
+
458
+ await leadMeetingRepo
459
+ .createQueryBuilder()
460
+ .update()
461
+ .set({ user_id: lead_owner })
462
+ .where("stage_id = :stageId", { stageId: stage_id })
463
+ .andWhere("mapped_entity_id = :leadId", { leadId: lead_id })
464
+ .andWhere("mapped_entity_type = :entityType", { entityType: "LEAD" })
465
+ .andWhere("(status = 'scheduled' OR status = 'rescheduled')")
466
+ .execute();
467
+
468
+ const taskRows = await this.taskDataEntityRepository.find({
469
+ where: {
470
+ mapped_entity_id: lead_id,
471
+ mapped_entity_type: entity_type,
472
+ stage_id
473
+ }
474
+ });
475
+
476
+ for (const task of taskRows) {
477
+ const statusRows = await listMasterItemsRepo.findOne({
478
+ where: {
479
+ id: task.status
480
+ }
481
+ });
482
+
483
+ const statusName = statusRows?.value?.toLowerCase() || '';
484
+ if (
485
+ ['todo', 'in_progress'].includes(statusName) ||
486
+ statusName === 'todo'
487
+ ) {
488
+
489
+ await this.taskDataEntityRepository.update(task.id,{
490
+ user_id: lead_owner,
491
+ task_owner: lead_owner
492
+ });
493
+ }
494
+ }
495
+
496
+ let leadOwnerName;
497
+
498
+ try {
499
+ const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
500
+
501
+ // Prepare query params
502
+ const queryParams = new URLSearchParams({
503
+ loggedInUser: JSON.stringify(loggedInUser),
504
+ }).toString();
505
+
506
+ const url = `${baseUrl}/entity/public/getById/${entityData?.lead_owner}?entity_type=USR&${queryParams}`;
507
+
508
+ const response = await axios.get(url);
509
+
510
+ leadOwnerName = response.data;
511
+ } catch (error) {
512
+ console.error('Internal Entity API call failed:', error.message);
513
+ }
514
+
515
+ try {
516
+ const logData = {
517
+ mapped_entity_id: lead_id,
518
+ mapped_entity_type: 'LEAD',
519
+ title: 'Owner Assigned',
520
+ description: leadData?.lead_owner
521
+ ? `${leadOwnerName?.name} reassigned as Lead owner.`
522
+ : `${leadOwnerName?.name} assigned as Lead owner.`,
523
+ action: 'assign',
524
+ category: ACTIVITY_CATEGORIES.ASSIGN,
525
+ appcode: loggedInUser.appcode,
526
+ };
527
+
528
+ await this.activityLogService.logActivity(logData, loggedInUser);
529
+ } catch (error) {
530
+ console.error(
531
+ 'Failed to log activity for meeting:',
532
+ error?.message || error,
533
+ );
534
+ // Logging should not block main flow
535
+ }
536
+ return result;
537
+ }
538
+
539
+ async assignLead(
540
+ loggedInUser: UserData,
541
+ mapped_entity_id: number,
542
+ mapped_entity_type: string,
543
+ stage_id: number,
544
+ actions: any[],
545
+ ): Promise<number> {
546
+ const { enterprise_id, level_id, level_type } = loggedInUser;
547
+
548
+ let owners = [] as any;
549
+
550
+ try {
551
+ const baseUrl = this.configService.get<string>('REDIRECT_BE_URL');
552
+
553
+ // Prepare query params
554
+ const queryParams = new URLSearchParams({
555
+ loggedInUser: JSON.stringify(loggedInUser),
556
+ }).toString();
557
+
558
+ const { level_id } = loggedInUser;
559
+
560
+ const url = `${baseUrl}/users/public/lead-owners/?entity_type=USR&${queryParams}`;
561
+
562
+ const response = await axios.get(url);
563
+
564
+ owners = response.data;
565
+
566
+ // The API response is likely a JSON object, not an array
567
+ } catch (error) {
568
+ console.error('Internal Entity API call failed:', error.message);
569
+ }
570
+
571
+ if (!owners?.length)
572
+ console.log('No eligible owners found for lead assignment.');
573
+ const userIds = owners?.map((o) => Number(o.id)); // normalize to numbers
574
+
575
+ // 2) Find the last assigned *eligible* owner (use IN (...))
576
+ const placeholders = userIds.map(() => '?').join(',');
577
+
578
+ const leadRepo = this.reflectionHelper.getRepoService('CRMLead');
579
+ const lastRow = await leadRepo
580
+ .createQueryBuilder("cl")
581
+ .select("cl.lead_owner", "lead_owner")
582
+ .where("cl.level_id = :levelId", { levelId: Number(level_id) })
583
+ .andWhere("cl.level_type = :levelType", { levelType: level_type })
584
+ .andWhere("cl.lead_owner IN (:...owners)", { owners: userIds })
585
+ .orderBy("cl.created_date", "DESC")
586
+ .limit(1)
587
+ .getRawOne();
588
+
589
+ const lastAssigned = lastRow.length ? Number(lastRow[0].lead_owner) : null;
590
+
591
+ // 3) Compute next user in round-robin
592
+ const lastIdx = lastAssigned != null ? userIds.indexOf(lastAssigned) : -1;
593
+ const nextIdx = (lastIdx + 1) % userIds.length;
594
+ const nextUser = userIds[nextIdx];
595
+
596
+ //4) Update lead owner in the lead table no need because we are updating lead owner in updateLeadOwner method
597
+ console.log(`Assigning lead to user ID: ${nextUser}`);
598
+
599
+ const firstAction = actions[0];
600
+
601
+ // update lead owner status
602
+ await this.updateLeadOwner(
603
+ {
604
+ lead_id: mapped_entity_id,
605
+ lead_owner: nextUser,
606
+ stage_id: stage_id,
607
+ entity_type: mapped_entity_type,
608
+ action_id: firstAction.id,
609
+ },
610
+ loggedInUser,
611
+ );
612
+
613
+ // move task
614
+ await this.taskService.moveTask(loggedInUser, {
615
+ mapped_entity_type,
616
+ mapped_entity_id,
617
+ stage_id,
618
+ action_id: firstAction.id,
619
+ });
620
+
621
+ // if it has only one action then move next stage
622
+ if (actions.length == 1) {
623
+ console.log(
624
+ 'Only one action present and it is owner assignment. Moving to next stage.',
625
+ );
626
+ await this.moveToNextStage(
627
+ mapped_entity_type,
628
+ mapped_entity_id,
629
+ loggedInUser,
630
+ );
631
+ }
632
+
633
+ return nextUser;
634
+ }
635
+ }