rez_core 6.5.61 → 6.5.63

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 (437) hide show
  1. package/dist/app.module.js +5 -3
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/constant/status.constant.d.ts +4 -0
  4. package/dist/constant/status.constant.js +9 -0
  5. package/dist/constant/status.constant.js.map +1 -0
  6. package/dist/core.module.js +63 -38
  7. package/dist/core.module.js.map +1 -1
  8. package/dist/module/app_master/app-master.module.d.ts +2 -0
  9. package/dist/module/app_master/app-master.module.js +28 -0
  10. package/dist/module/app_master/app-master.module.js.map +1 -0
  11. package/dist/module/app_master/controller/app-master.controller.js.map +1 -0
  12. package/dist/module/app_master/entity/app-master.entity.d.ts +17 -0
  13. package/dist/module/{meta → app_master}/entity/app-master.entity.js +30 -12
  14. package/dist/module/app_master/entity/app-master.entity.js.map +1 -0
  15. package/dist/module/{meta → app_master}/repository/app-master.repository.d.ts +2 -2
  16. package/dist/module/{meta → app_master}/repository/app-master.repository.js +4 -4
  17. package/dist/module/app_master/repository/app-master.repository.js.map +1 -0
  18. package/dist/module/app_master/service/app-master.service.js.map +1 -0
  19. package/dist/module/auth/strategies/jwt.strategy.d.ts +2 -1
  20. package/dist/module/auth/strategies/jwt.strategy.js +3 -2
  21. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  22. package/dist/module/dashboard/dashboard.module.js +1 -1
  23. package/dist/module/dashboard/dashboard.module.js.map +1 -1
  24. package/dist/module/dashboard/service/dashboard.service.js +1 -2
  25. package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
  26. package/dist/module/enterprise/controller/enterprise.controller.d.ts +12 -0
  27. package/dist/module/enterprise/controller/enterprise.controller.js +57 -0
  28. package/dist/module/enterprise/controller/enterprise.controller.js.map +1 -0
  29. package/dist/module/enterprise/controller/meta.controller.d.ts +9 -0
  30. package/dist/module/enterprise/controller/meta.controller.js +43 -0
  31. package/dist/module/enterprise/controller/meta.controller.js.map +1 -0
  32. package/dist/module/enterprise/controller/organization.controller.d.ts +12 -4
  33. package/dist/module/enterprise/controller/organization.controller.js +64 -8
  34. package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
  35. package/dist/module/enterprise/enterprise.module.js +10 -15
  36. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  37. package/dist/module/enterprise/entity/enterprise.entity.d.ts +1 -3
  38. package/dist/module/enterprise/entity/enterprise.entity.js +4 -12
  39. package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
  40. package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +6 -1
  41. package/dist/module/enterprise/entity/organization-app-mapping.entity.js +21 -4
  42. package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
  43. package/dist/module/enterprise/entity/organization.entity.d.ts +3 -17
  44. package/dist/module/enterprise/entity/organization.entity.js +11 -73
  45. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  46. package/dist/module/enterprise/repository/enterprise.repository.d.ts +4 -2
  47. package/dist/module/enterprise/repository/enterprise.repository.js +19 -4
  48. package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
  49. package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
  50. package/dist/module/enterprise/service/brand-profile.service.js +1 -0
  51. package/dist/module/enterprise/service/brand-profile.service.js.map +1 -0
  52. package/dist/module/enterprise/service/brand.service.d.ts +0 -3
  53. package/dist/module/enterprise/service/brand.service.js +0 -17
  54. package/dist/module/enterprise/service/brand.service.js.map +1 -1
  55. package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
  56. package/dist/module/enterprise/service/enterprise.service.js +6 -4
  57. package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
  58. package/dist/module/enterprise/service/organization.service.d.ts +6 -6
  59. package/dist/module/enterprise/service/organization.service.js +109 -27
  60. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  61. package/dist/module/enterprise/service/populate-meta.service.d.ts +9 -0
  62. package/dist/module/{meta → enterprise}/service/populate-meta.service.js +2 -8
  63. package/dist/module/enterprise/service/populate-meta.service.js.map +1 -0
  64. package/dist/module/enterprise/service/school.service.d.ts +0 -0
  65. package/dist/module/enterprise/service/school.service.js +1 -0
  66. package/dist/module/enterprise/service/school.service.js.map +1 -0
  67. package/dist/module/entity_json/controller/entity_json.controller.d.ts +9 -2
  68. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  69. package/dist/module/entity_json/entity/entityJson.entity.d.ts +1 -2
  70. package/dist/module/entity_json/entity/entityJson.entity.js +1 -5
  71. package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
  72. package/dist/module/entity_json/entity_json.module.js +2 -7
  73. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  74. package/dist/module/entity_json/service/entity_json.service.d.ts +10 -2
  75. package/dist/module/entity_json/service/entity_json.service.js +25 -101
  76. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  77. package/dist/module/filter/controller/filter.controller.d.ts +0 -12
  78. package/dist/module/filter/controller/filter.controller.js +1 -1
  79. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  80. package/dist/module/filter/filter.module.js +2 -11
  81. package/dist/module/filter/filter.module.js.map +1 -1
  82. package/dist/module/filter/service/filter.service.d.ts +2 -38
  83. package/dist/module/filter/service/filter.service.js +50 -43
  84. package/dist/module/filter/service/filter.service.js.map +1 -1
  85. package/dist/module/filter/service/saved-filter.service.d.ts +2 -3
  86. package/dist/module/filter/service/saved-filter.service.js +18 -14
  87. package/dist/module/filter/service/saved-filter.service.js.map +1 -1
  88. package/dist/module/integration/service/integration.service.d.ts +0 -1
  89. package/dist/module/integration/service/integration.service.js +1 -2
  90. package/dist/module/integration/service/integration.service.js.map +1 -1
  91. package/dist/module/integration/service/wrapper.service.js +0 -1
  92. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  93. package/dist/module/layout/controller/layout.controller.d.ts +1 -3
  94. package/dist/module/layout/controller/layout.controller.js +3 -7
  95. package/dist/module/layout/controller/layout.controller.js.map +1 -1
  96. package/dist/module/layout/entity/header-section.entity.d.ts +0 -2
  97. package/dist/module/layout/entity/header-section.entity.js +0 -8
  98. package/dist/module/layout/entity/header-section.entity.js.map +1 -1
  99. package/dist/module/layout/layout.module.js +1 -2
  100. package/dist/module/layout/layout.module.js.map +1 -1
  101. package/dist/module/layout/repository/header-section.repository.d.ts +0 -1
  102. package/dist/module/layout/repository/header-section.repository.js +0 -5
  103. package/dist/module/layout/repository/header-section.repository.js.map +1 -1
  104. package/dist/module/layout/service/header-section.service.d.ts +1 -1
  105. package/dist/module/layout/service/header-section.service.js +1 -1
  106. package/dist/module/layout/service/header-section.service.js.map +1 -1
  107. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +0 -41
  108. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +0 -90
  109. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
  110. package/dist/module/linked_attributes/linked_attributes.module.js +1 -8
  111. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
  112. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +1 -65
  113. package/dist/module/linked_attributes/service/linked_attributes.service.js +2 -287
  114. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  115. package/dist/module/listmaster/service/list-master.service.d.ts +14 -1
  116. package/dist/module/listmaster/service/list-master.service.js +217 -44
  117. package/dist/module/listmaster/service/list-master.service.js.map +1 -1
  118. package/dist/module/meta/controller/attribute-master.controller.d.ts +0 -3
  119. package/dist/module/meta/controller/attribute-master.controller.js +0 -12
  120. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  121. package/dist/module/meta/controller/entity-dynamic.controller.js +6 -3
  122. package/dist/module/meta/controller/entity-dynamic.controller.js.map +1 -1
  123. package/dist/module/meta/controller/entity.controller.js +1 -1
  124. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  125. package/dist/module/meta/controller/meta.controller.d.ts +1 -6
  126. package/dist/module/meta/controller/meta.controller.js +1 -19
  127. package/dist/module/meta/controller/meta.controller.js.map +1 -1
  128. package/dist/module/meta/entity/attribute-master.entity.d.ts +4 -0
  129. package/dist/module/meta/entity/attribute-master.entity.js +16 -0
  130. package/dist/module/meta/entity/attribute-master.entity.js.map +1 -1
  131. package/dist/module/meta/entity/entity-master.entity.d.ts +0 -1
  132. package/dist/module/meta/entity/entity-master.entity.js +1 -8
  133. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  134. package/dist/module/meta/entity.module.js +3 -14
  135. package/dist/module/meta/entity.module.js.map +1 -1
  136. package/dist/module/meta/service/attribute-master.service.d.ts +1 -6
  137. package/dist/module/meta/service/attribute-master.service.js +2 -22
  138. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  139. package/dist/module/meta/service/entity-dynamic.service.d.ts +9 -12
  140. package/dist/module/meta/service/entity-dynamic.service.js +20 -22
  141. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  142. package/dist/module/meta/service/entity-master.service.js +0 -1
  143. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  144. package/dist/module/meta/service/entity-relation.service.d.ts +3 -4
  145. package/dist/module/meta/service/entity-relation.service.js +4 -10
  146. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  147. package/dist/module/meta/service/entity-service-impl.service.d.ts +2 -2
  148. package/dist/module/meta/service/entity-service-impl.service.js +11 -15
  149. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  150. package/dist/module/meta/service/entity-table.service.d.ts +4 -5
  151. package/dist/module/meta/service/entity-table.service.js +24 -45
  152. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  153. package/dist/module/meta/service/resolver.service.d.ts +1 -1
  154. package/dist/module/meta/service/resolver.service.js +3 -6
  155. package/dist/module/meta/service/resolver.service.js.map +1 -1
  156. package/dist/module/module/controller/module-access.controller.d.ts +3 -4
  157. package/dist/module/module/controller/module-access.controller.js +13 -8
  158. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  159. package/dist/module/module/entity/menu.entity.d.ts +6 -3
  160. package/dist/module/module/entity/menu.entity.js +19 -10
  161. package/dist/module/module/entity/menu.entity.js.map +1 -1
  162. package/dist/module/module/entity/module-access.entity.d.ts +15 -1
  163. package/dist/module/module/entity/module-access.entity.js +49 -3
  164. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  165. package/dist/module/module/entity/module-action.entity.d.ts +4 -2
  166. package/dist/module/module/entity/module-action.entity.js +11 -6
  167. package/dist/module/module/entity/module-action.entity.js.map +1 -1
  168. package/dist/module/module/entity/module.entity.d.ts +3 -5
  169. package/dist/module/module/entity/module.entity.js +8 -18
  170. package/dist/module/module/entity/module.entity.js.map +1 -1
  171. package/dist/module/module/module.module.d.ts +1 -1
  172. package/dist/module/module/module.module.js +5 -7
  173. package/dist/module/module/module.module.js.map +1 -1
  174. package/dist/module/module/repository/menu.repository.d.ts +3 -3
  175. package/dist/module/module/repository/menu.repository.js +38 -27
  176. package/dist/module/module/repository/menu.repository.js.map +1 -1
  177. package/dist/module/module/repository/module-access.repository.d.ts +6 -6
  178. package/dist/module/module/repository/module-access.repository.js +100 -50
  179. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  180. package/dist/module/module/service/menu.service.d.ts +2 -4
  181. package/dist/module/module/service/menu.service.js +7 -10
  182. package/dist/module/module/service/menu.service.js.map +1 -1
  183. package/dist/module/module/service/module-access.service.d.ts +7 -10
  184. package/dist/module/module/service/module-access.service.js +22 -24
  185. package/dist/module/module/service/module-access.service.js.map +1 -1
  186. package/dist/module/notification/entity/notification.entity.d.ts +17 -2
  187. package/dist/module/notification/entity/notification.entity.js +68 -2
  188. package/dist/module/notification/entity/notification.entity.js.map +1 -1
  189. package/dist/module/notification/notification.module.js +3 -4
  190. package/dist/module/notification/notification.module.js.map +1 -1
  191. package/dist/module/notification/service/email.service.d.ts +1 -0
  192. package/dist/module/notification/service/email.service.js +14 -0
  193. package/dist/module/notification/service/email.service.js.map +1 -1
  194. package/dist/module/notification/service/notification.service.d.ts +1 -3
  195. package/dist/module/notification/service/notification.service.js +2 -5
  196. package/dist/module/notification/service/notification.service.js.map +1 -1
  197. package/dist/module/notification/service/otp.service.d.ts +2 -2
  198. package/dist/module/notification/service/otp.service.js +4 -5
  199. package/dist/module/notification/service/otp.service.js.map +1 -1
  200. package/dist/module/preference_master/entity/preference.entity.d.ts +9 -0
  201. package/dist/module/preference_master/entity/preference.entity.js +48 -0
  202. package/dist/module/preference_master/entity/preference.entity.js.map +1 -0
  203. package/dist/module/preference_master/preference.service.d.ts +8 -0
  204. package/dist/module/preference_master/preference.service.js +31 -0
  205. package/dist/module/preference_master/preference.service.js.map +1 -0
  206. package/dist/module/preference_master/repo/preference.repository.d.ts +8 -0
  207. package/dist/module/preference_master/repo/preference.repository.js +48 -0
  208. package/dist/module/preference_master/repo/preference.repository.js.map +1 -0
  209. package/dist/module/user/controller/login.controller.d.ts +1 -3
  210. package/dist/module/user/controller/login.controller.js +2 -6
  211. package/dist/module/user/controller/login.controller.js.map +1 -1
  212. package/dist/module/user/controller/user.controller.d.ts +0 -2
  213. package/dist/module/user/controller/user.controller.js +0 -13
  214. package/dist/module/user/controller/user.controller.js.map +1 -1
  215. package/dist/module/user/dto/create-user.dto.d.ts +6 -3
  216. package/dist/module/user/dto/create-user.dto.js +17 -11
  217. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  218. package/dist/module/user/entity/role.entity.d.ts +18 -6
  219. package/dist/module/user/entity/role.entity.js +64 -19
  220. package/dist/module/user/entity/role.entity.js.map +1 -1
  221. package/dist/module/user/entity/user-role-mapping.entity.d.ts +10 -0
  222. package/dist/module/user/entity/user-role-mapping.entity.js +33 -1
  223. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  224. package/dist/module/user/entity/user-session.entity.d.ts +0 -2
  225. package/dist/module/user/entity/user-session.entity.js +2 -20
  226. package/dist/module/user/entity/user-session.entity.js.map +1 -1
  227. package/dist/module/user/entity/user.entity.d.ts +17 -5
  228. package/dist/module/user/entity/user.entity.js +61 -15
  229. package/dist/module/user/entity/user.entity.js.map +1 -1
  230. package/dist/module/user/repository/role.repository.d.ts +7 -2
  231. package/dist/module/user/repository/role.repository.js +23 -8
  232. package/dist/module/user/repository/role.repository.js.map +1 -1
  233. package/dist/module/user/repository/user-role-mapping.repository.d.ts +1 -0
  234. package/dist/module/user/repository/user-role-mapping.repository.js +3 -0
  235. package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
  236. package/dist/module/user/repository/user.repository.d.ts +5 -2
  237. package/dist/module/user/repository/user.repository.js +26 -7
  238. package/dist/module/user/repository/user.repository.js.map +1 -1
  239. package/dist/module/user/repository/userSession.repository.d.ts +1 -0
  240. package/dist/module/user/repository/userSession.repository.js +3 -0
  241. package/dist/module/user/repository/userSession.repository.js.map +1 -1
  242. package/dist/module/user/service/login.service.d.ts +3 -5
  243. package/dist/module/user/service/login.service.js +43 -42
  244. package/dist/module/user/service/login.service.js.map +1 -1
  245. package/dist/module/user/service/role.service.d.ts +24 -11
  246. package/dist/module/user/service/role.service.js +54 -40
  247. package/dist/module/user/service/role.service.js.map +1 -1
  248. package/dist/module/user/service/user-role-mapping.service.d.ts +2 -0
  249. package/dist/module/user/service/user-role-mapping.service.js +6 -0
  250. package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
  251. package/dist/module/user/service/user-session.service.d.ts +3 -4
  252. package/dist/module/user/service/user-session.service.js +10 -11
  253. package/dist/module/user/service/user-session.service.js.map +1 -1
  254. package/dist/module/user/service/user.service.d.ts +33 -22
  255. package/dist/module/user/service/user.service.js +66 -58
  256. package/dist/module/user/service/user.service.js.map +1 -1
  257. package/dist/module/user/user.module.js +2 -7
  258. package/dist/module/user/user.module.js.map +1 -1
  259. package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
  260. package/dist/module/workflow/repository/action-data.repository.js +6 -8
  261. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  262. package/dist/module/workflow/repository/action.repository.d.ts +1 -1
  263. package/dist/module/workflow/repository/action.repository.js +10 -10
  264. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  265. package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
  266. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  267. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  268. package/dist/module/workflow/service/action-data.service.js +1 -2
  269. package/dist/module/workflow/service/action-data.service.js.map +1 -1
  270. package/dist/module/workflow/service/action.service.js +2 -2
  271. package/dist/module/workflow/service/action.service.js.map +1 -1
  272. package/dist/module/workflow/service/comm-template.service.js +0 -2
  273. package/dist/module/workflow/service/comm-template.service.js.map +1 -1
  274. package/dist/module/workflow/service/entity-modification.service.js +0 -1
  275. package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
  276. package/dist/module/workflow/service/form-master.service.js +2 -2
  277. package/dist/module/workflow/service/form-master.service.js.map +1 -1
  278. package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
  279. package/dist/module/workflow/service/populate-workflow.service.js +1 -1
  280. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  281. package/dist/module/workflow/service/task.service.js +1 -4
  282. package/dist/module/workflow/service/task.service.js.map +1 -1
  283. package/dist/module/workflow/service/workflow-meta.service.js +2 -7
  284. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  285. package/dist/module/workflow/service/workflow.service.js +2 -2
  286. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  287. package/dist/module/workflow/workflow.module.js +2 -0
  288. package/dist/module/workflow/workflow.module.js.map +1 -1
  289. package/dist/module/workflow-automation/service/workflow-automation.service.js +11 -6
  290. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  291. package/dist/module/workflow-automation/workflow-automation.module.js +3 -1
  292. package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
  293. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +0 -2
  294. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
  295. package/dist/table.config.d.ts +3 -5
  296. package/dist/table.config.js +3 -3
  297. package/dist/table.config.js.map +1 -1
  298. package/dist/tsconfig.build.tsbuildinfo +1 -1
  299. package/package.json +2 -2
  300. package/src/app.module.ts +7 -5
  301. package/src/constant/status.constant.ts +4 -0
  302. package/src/core.module.ts +58 -44
  303. package/src/module/app_master/app-master.module.ts +15 -0
  304. package/src/module/{meta → app_master}/entity/app-master.entity.ts +22 -9
  305. package/src/module/{meta → app_master}/repository/app-master.repository.ts +3 -3
  306. package/src/module/auth/strategies/jwt.strategy.ts +4 -2
  307. package/src/module/dashboard/dashboard.module.ts +3 -3
  308. package/src/module/dashboard/service/dashboard.service.ts +1 -2
  309. package/src/module/enterprise/controller/enterprise.controller.ts +40 -0
  310. package/src/module/enterprise/controller/meta.controller.ts +23 -0
  311. package/src/module/enterprise/controller/organization.controller.ts +60 -4
  312. package/src/module/enterprise/enterprise.module.ts +16 -18
  313. package/src/module/enterprise/entity/enterprise.entity.ts +5 -11
  314. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +18 -4
  315. package/src/module/enterprise/entity/organization.entity.ts +11 -58
  316. package/src/module/enterprise/repository/enterprise.repository.ts +26 -4
  317. package/src/module/enterprise/service/brand-profile.service.ts +10 -0
  318. package/src/module/enterprise/service/brand.service.ts +75 -5
  319. package/src/module/enterprise/service/enterprise.service.ts +12 -4
  320. package/src/module/enterprise/service/organization.service.ts +151 -28
  321. package/src/module/{meta → enterprise}/service/populate-meta.service.ts +2 -5
  322. package/src/module/enterprise/service/school.service.ts +5 -0
  323. package/src/module/entity_json/controller/entity_json.controller.ts +0 -13
  324. package/src/module/entity_json/entity/entityJson.entity.ts +1 -4
  325. package/src/module/entity_json/entity_json.module.ts +5 -9
  326. package/src/module/entity_json/service/entity_json.service.ts +51 -237
  327. package/src/module/filter/controller/filter.controller.ts +3 -1
  328. package/src/module/filter/filter.module.ts +3 -12
  329. package/src/module/filter/service/filter.service.ts +73 -130
  330. package/src/module/filter/service/saved-filter.service.ts +26 -16
  331. package/src/module/integration/service/integration.service.ts +2 -6
  332. package/src/module/integration/service/wrapper.service.ts +0 -1
  333. package/src/module/layout/controller/layout.controller.ts +1 -8
  334. package/src/module/layout/entity/header-section.entity.ts +0 -6
  335. package/src/module/layout/layout.module.ts +1 -1
  336. package/src/module/layout/repository/header-section.repository.ts +0 -6
  337. package/src/module/layout/service/header-section.service.ts +1 -1
  338. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +0 -100
  339. package/src/module/linked_attributes/linked_attributes.module.ts +2 -9
  340. package/src/module/linked_attributes/service/linked_attributes.service.ts +3 -578
  341. package/src/module/listmaster/service/list-master.service.ts +437 -75
  342. package/src/module/meta/controller/attribute-master.controller.ts +0 -12
  343. package/src/module/meta/controller/entity-dynamic.controller.ts +6 -8
  344. package/src/module/meta/controller/entity.controller.ts +0 -1
  345. package/src/module/meta/controller/meta.controller.ts +3 -25
  346. package/src/module/meta/entity/attribute-master.entity.ts +13 -0
  347. package/src/module/meta/entity/entity-master.entity.ts +3 -9
  348. package/src/module/meta/entity.module.ts +6 -20
  349. package/src/module/meta/service/attribute-master.service.ts +1 -31
  350. package/src/module/meta/service/entity-dynamic.service.ts +23 -26
  351. package/src/module/meta/service/entity-master.service.ts +0 -1
  352. package/src/module/meta/service/entity-relation.service.ts +6 -10
  353. package/src/module/meta/service/entity-service-impl.service.ts +19 -15
  354. package/src/module/meta/service/entity-table.service.ts +68 -82
  355. package/src/module/meta/service/entity.service.ts +1 -0
  356. package/src/module/meta/service/resolver.service.ts +0 -4
  357. package/src/module/module/controller/module-access.controller.ts +14 -9
  358. package/src/module/module/entity/menu.entity.ts +18 -10
  359. package/src/module/module/entity/module-access.entity.ts +40 -3
  360. package/src/module/module/entity/module-action.entity.ts +10 -6
  361. package/src/module/module/entity/module.entity.ts +7 -14
  362. package/src/module/module/module.module.ts +2 -3
  363. package/src/module/module/repository/menu.repository.ts +43 -29
  364. package/src/module/module/repository/module-access.repository.ts +110 -62
  365. package/src/module/module/service/menu.service.ts +7 -9
  366. package/src/module/module/service/module-access.service.ts +22 -34
  367. package/src/module/notification/entity/notification.entity.ts +53 -3
  368. package/src/module/notification/notification.module.ts +6 -5
  369. package/src/module/notification/service/email.service.ts +16 -1
  370. package/src/module/notification/service/notification.service.ts +0 -1
  371. package/src/module/notification/service/otp.service.ts +16 -5
  372. package/src/module/preference_master/entity/preference.entity.ts +25 -0
  373. package/src/module/preference_master/preference.service.ts +27 -0
  374. package/src/module/preference_master/repo/preference.repository.ts +36 -0
  375. package/src/module/user/controller/login.controller.ts +7 -8
  376. package/src/module/user/controller/user.controller.ts +0 -9
  377. package/src/module/user/dto/create-user.dto.ts +19 -6
  378. package/src/module/user/entity/role.entity.ts +59 -16
  379. package/src/module/user/entity/user-role-mapping.entity.ts +29 -3
  380. package/src/module/user/entity/user-session.entity.ts +3 -19
  381. package/src/module/user/entity/user.entity.ts +48 -13
  382. package/src/module/user/repository/role.repository.ts +32 -12
  383. package/src/module/user/repository/user-role-mapping.repository.ts +5 -1
  384. package/src/module/user/repository/user.repository.ts +36 -9
  385. package/src/module/user/repository/userSession.repository.ts +5 -1
  386. package/src/module/user/service/login.service.ts +47 -51
  387. package/src/module/user/service/role.service.ts +64 -63
  388. package/src/module/user/service/user-role-mapping.service.ts +23 -1
  389. package/src/module/user/service/user-session.service.ts +14 -11
  390. package/src/module/user/service/user.service.ts +76 -95
  391. package/src/module/user/user.module.ts +4 -5
  392. package/src/module/workflow/repository/action-data.repository.ts +6 -8
  393. package/src/module/workflow/repository/action.repository.ts +11 -11
  394. package/src/module/workflow/repository/form-master.repository.ts +2 -2
  395. package/src/module/workflow/service/action-data.service.ts +3 -2
  396. package/src/module/workflow/service/action.service.ts +2 -2
  397. package/src/module/workflow/service/comm-template.service.ts +0 -2
  398. package/src/module/workflow/service/entity-modification.service.ts +0 -1
  399. package/src/module/workflow/service/form-master.service.ts +2 -2
  400. package/src/module/workflow/service/populate-workflow.service.ts +1 -1
  401. package/src/module/workflow/service/task.service.ts +0 -4
  402. package/src/module/workflow/service/workflow-meta.service.ts +2 -7
  403. package/src/module/workflow/service/workflow.service.ts +2 -2
  404. package/src/module/workflow/workflow.module.ts +2 -0
  405. package/src/module/workflow-automation/service/workflow-automation.service.ts +19 -7
  406. package/src/module/workflow-automation/workflow-automation.module.ts +4 -3
  407. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +0 -2
  408. package/src/resources/dev.properties.yaml +2 -2
  409. package/src/table.config.ts +3 -3
  410. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +0 -6
  411. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +0 -32
  412. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +0 -1
  413. package/dist/module/filter/service/flatjson-filter.service.d.ts +0 -32
  414. package/dist/module/filter/service/flatjson-filter.service.js +0 -632
  415. package/dist/module/filter/service/flatjson-filter.service.js.map +0 -1
  416. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +0 -13
  417. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +0 -64
  418. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +0 -1
  419. package/dist/module/meta/controller/app-master.controller.js.map +0 -1
  420. package/dist/module/meta/entity/app-master.entity.d.ts +0 -13
  421. package/dist/module/meta/entity/app-master.entity.js.map +0 -1
  422. package/dist/module/meta/repository/app-master.repository.js.map +0 -1
  423. package/dist/module/meta/service/app-master.service.js.map +0 -1
  424. package/dist/module/meta/service/populate-meta.service.d.ts +0 -13
  425. package/dist/module/meta/service/populate-meta.service.js.map +0 -1
  426. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +0 -41
  427. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +0 -2804
  428. package/src/module/filter/service/flatjson-filter.service.ts +0 -903
  429. package/src/module/filter/test/flatjson-filter.service.spec.ts +0 -415
  430. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +0 -54
  431. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +0 -244
  432. /package/dist/module/{meta → app_master}/controller/app-master.controller.d.ts +0 -0
  433. /package/dist/module/{meta → app_master}/controller/app-master.controller.js +0 -0
  434. /package/dist/module/{meta → app_master}/service/app-master.service.d.ts +0 -0
  435. /package/dist/module/{meta → app_master}/service/app-master.service.js +0 -0
  436. /package/src/module/{meta → app_master}/controller/app-master.controller.ts +0 -0
  437. /package/src/module/{meta → app_master}/service/app-master.service.ts +0 -0
@@ -212,14 +212,6 @@ export class ListMasterService {
212
212
  });
213
213
  }
214
214
 
215
- if (loggedInUser?.appcode && sourceList === 'ROL') {
216
- if (!this.skipLevelFilterEntities.includes(sourceList)) {
217
- qb.andWhere(`${tableName}.appcode = :appcode`, {
218
- appcode: loggedInUser.appcode,
219
- });
220
- }
221
- }
222
-
223
215
  // ✅ Apply dynamic params
224
216
  for (const key in params) {
225
217
  qb.andWhere(`${tableName}.${key} = :${key}`, {
@@ -259,7 +251,7 @@ export class ListMasterService {
259
251
 
260
252
  const resolveInactiveStatus = await this.getResolvedListCode(
261
253
  STATUS_INACTIVE,
262
- loggedInUser?.organization_id || 0,
254
+ loggedInUser?.enterprise_id || 0,
263
255
  );
264
256
 
265
257
  // Fetch inactive records (with same filters but without status condition)
@@ -430,91 +422,373 @@ export class ListMasterService {
430
422
  entity_type: string,
431
423
  attribute_key: string,
432
424
  loggedInUser: UserData,
433
- body: Record<string, string>,
425
+ body: Record<string, any>,
434
426
  ) {
435
- let entityMaster = await this.entityMasterService.getEntityData(
436
- entity_type,
437
- loggedInUser,
438
- );
439
- let appCode = entityMaster.appcode;
427
+ try {
428
+ // Extract inactiveIds from body
429
+ const { inactiveIds, ...params } = body;
430
+ const inactiveIdsArray = inactiveIds
431
+ ? inactiveIds.split(',').map((id) => parseInt(id, 10))
432
+ : [];
433
+
434
+ // Fetch Attribute Master to get data source configuration
435
+ const attributeMaster =
436
+ await this.attributeMasterService.findByMappedEntityTypeAndAttributeKey(
437
+ entity_type,
438
+ attribute_key,
439
+ loggedInUser,
440
+ );
440
441
 
441
- const { inactiveIds, ...params } = body;
442
+ if (!attributeMaster) {
443
+ throw new BadRequestException(
444
+ `Attribute '${attribute_key}' not found for entity '${entity_type}'`,
445
+ );
446
+ }
442
447
 
443
- const inactiveIdsArray = inactiveIds
444
- ? inactiveIds.split(',').map((id) => parseInt(id, 10))
445
- : [];
448
+ // Extract data source configuration from AttributeMaster
449
+ const {
450
+ ds_category, // ENT_LIST | LM | CAPI | CK | EXTAPI
451
+ ds_entitytype, // Entity type or list code
452
+ ds_filtercode, // Additional filter code
453
+ ds_appcode, // Target app code
454
+ } = attributeMaster;
446
455
 
447
- const currentAppCode = this.configService.get<string>('appcode');
456
+ if (!ds_category) {
457
+ throw new BadRequestException(
458
+ `Data source category not configured for attribute '${attribute_key}'`,
459
+ );
460
+ }
448
461
 
449
- if (currentAppCode === appCode || !currentAppCode) {
450
- const entityAttribute =
451
- await this.attributeMasterService.findByMappedEntityTypeAndAttributeKey(
462
+ const currentAppCode = this.configService.get<string>('appcode');
463
+
464
+ // Check if request is for same app (SELF) or cross-app (CROSS)
465
+ const isSelfApp =
466
+ !ds_appcode ||
467
+ ds_appcode.toUpperCase() === 'SELF' ||
468
+ currentAppCode === ds_appcode;
469
+
470
+ if (isSelfApp) {
471
+ // SELF APP - Process locally
472
+ return this.processLocalDropdown(
473
+ ds_category,
474
+ ds_entitytype,
475
+ ds_filtercode,
476
+ params,
477
+ inactiveIdsArray,
478
+ loggedInUser,
479
+ );
480
+ } else {
481
+ // CROSS APP - Forward to target microservice
482
+ return this.processCrossAppDropdown(
483
+ ds_appcode,
452
484
  entity_type,
453
485
  attribute_key,
454
486
  loggedInUser,
487
+ body,
455
488
  );
489
+ }
490
+ } catch (error) {
491
+ console.error('❌ Error in getDropDownData:', error.message);
492
+ throw error;
493
+ }
494
+ }
456
495
 
457
- if (entityAttribute && entityAttribute.data_source_type) {
458
- const listMaster = await this.listMasterRepo.findByType(
459
- entityAttribute.datasource_list,
460
- loggedInUser?.enterprise_id,
496
+ /**
497
+ * Process dropdown data locally (SELF APP)
498
+ */
499
+ private async processLocalDropdown(
500
+ ds_category: string,
501
+ ds_entitytype: string,
502
+ ds_filtercode: string,
503
+ params: Record<string, any>,
504
+ inactiveIdsArray: number[],
505
+ loggedInUser: UserData,
506
+ ) {
507
+ // Route to appropriate handler based on data source category
508
+ switch (ds_category.toUpperCase()) {
509
+ case 'ENT_LIST':
510
+ case 'ENTITY':
511
+ // Merge ds_filtercode params with request params
512
+ const mergedParams = { ...params };
513
+ if (ds_filtercode) {
514
+ const filterParams = this.parseFilterCode(ds_filtercode);
515
+ Object.assign(mergedParams, filterParams);
516
+ }
517
+ return this.fetchFromEntity(
518
+ ds_entitytype,
519
+ mergedParams,
520
+ inactiveIdsArray,
521
+ loggedInUser,
461
522
  );
462
523
 
463
- if (!listMaster) {
464
- return;
465
- }
524
+ case 'LM':
525
+ case 'LIST_MASTER':
526
+ return this.fetchFromListMaster(
527
+ ds_entitytype,
528
+ ds_filtercode,
529
+ params,
530
+ inactiveIdsArray,
531
+ loggedInUser,
532
+ );
533
+
534
+ case 'CAPI':
535
+ case 'CUSTOM_API':
536
+ return this.fetchFromCustomInternalService(
537
+ ds_entitytype,
538
+ ds_filtercode,
539
+ params,
540
+ loggedInUser,
541
+ );
542
+
543
+ case 'CK':
544
+ case 'CUSTOM_KEY':
545
+ return this.fetchFromCustomKey(
546
+ ds_entitytype,
547
+ ds_filtercode,
548
+ params,
549
+ loggedInUser,
550
+ );
551
+
552
+ case 'EXTAPI':
553
+ case 'EXTERNAL_API':
554
+ return this.fetchFromExternalAPI(
555
+ ds_entitytype,
556
+ ds_filtercode,
557
+ params,
558
+ loggedInUser,
559
+ );
560
+
561
+ default:
562
+ throw new BadRequestException(
563
+ `Unsupported data source category: ${ds_category}`,
564
+ );
565
+ }
566
+ }
567
+
568
+ /**
569
+ * Fetch dropdown from List Master
570
+ */
571
+ private async fetchFromListMaster(
572
+ lmCode: string,
573
+ filterCode: string,
574
+ params: Record<string, any>,
575
+ inactiveIdsArray: number[],
576
+ loggedInUser: UserData,
577
+ ) {
578
+ try {
579
+ // Get List Master configuration
580
+ const listMaster = await this.listMasterRepo.findByType(
581
+ lmCode,
582
+ loggedInUser.enterprise_id,
583
+ );
584
+
585
+ if (!listMaster) {
586
+ throw new BadRequestException(`List Master '${lmCode}' not found`);
587
+ }
588
+
589
+ // Use repository to fetch items directly with filter
590
+ return this.listItemsRepo.findItemsByType(
591
+ lmCode,
592
+ listMaster.sort_by,
593
+ inactiveIdsArray,
594
+ loggedInUser.enterprise_id,
595
+ params,
596
+ );
597
+ } catch (error) {
598
+ console.error(`❌ Error fetching from List Master '${lmCode}':`, error.message);
599
+ throw new BadRequestException(
600
+ `Failed to fetch from List Master: ${error.message}`,
601
+ );
602
+ }
603
+ }
604
+
605
+ /**
606
+ * Fetch dropdown from Custom Internal Service (Message Pattern)
607
+ */
608
+ private async fetchFromCustomInternalService(
609
+ serviceName: string,
610
+ filterCode: string,
611
+ params: Record<string, any>,
612
+ loggedInUser: UserData,
613
+ ) {
614
+ try {
615
+ // Get internal service client
616
+ const client = this.factory.getClient('INTERNAL_SERVICE');
617
+
618
+ if (!client) {
619
+ throw new BadRequestException('Internal service client not available');
620
+ }
621
+
622
+ // Call internal microservice using message pattern
623
+ const response = await client
624
+ .send(serviceName, {
625
+ filterCode,
626
+ params,
627
+ loggedInUser,
628
+ })
629
+ .toPromise();
630
+
631
+ return response;
632
+ } catch (error) {
633
+ console.error(
634
+ `❌ Error calling custom internal service '${serviceName}':`,
635
+ error.message,
636
+ );
637
+ throw new BadRequestException(
638
+ `Failed to call custom internal service: ${error.message}`,
639
+ );
640
+ }
641
+ }
642
+
643
+ /**
644
+ * Fetch dropdown from Custom Key (Predefined logic)
645
+ */
646
+ private async fetchFromCustomKey(
647
+ customKey: string,
648
+ filterCode: string,
649
+ params: Record<string, any>,
650
+ loggedInUser: UserData,
651
+ ) {
652
+ try {
653
+ // Handle predefined custom logic based on custom key
654
+ switch (customKey.toUpperCase()) {
655
+ case 'USER_ROLES':
656
+ return this.getUserRolesDropdown(filterCode, params, loggedInUser);
657
+
658
+ case 'DEPARTMENTS':
659
+ return this.getDepartmentsDropdown(filterCode, params, loggedInUser);
660
+
661
+ case 'FINANCIAL_YEARS':
662
+ return this.getFinancialYearsDropdown(filterCode, params, loggedInUser);
466
663
 
467
- switch (listMaster.source) {
468
- case 'entity':
469
- return this.fetchFromEntity(
470
- listMaster.type,
471
- params,
472
- inactiveIdsArray,
473
- loggedInUser,
474
- );
475
-
476
- case 'master':
477
- return this.listItemsRepo.findItemsByType(
478
- listMaster.type,
479
- listMaster.sort_by,
480
- inactiveIdsArray,
481
- loggedInUser.enterprise_id,
482
- params,
483
- );
484
-
485
- case 'operator':
486
- return this.listItemsRepo.findOperatorsByType(
487
- listMaster?.type,
488
- loggedInUser?.enterprise_id,
489
- );
490
-
491
- case 'custom':
492
- // If you want Axios call here too:
493
- try {
494
- const response = await axios.get(
495
- `https://external-source.com/${listMaster.custom_source_id}`,
496
- { params },
497
- );
498
- return response.data;
499
- } catch (error) {
500
- console.error('⚠️ Custom source fetch failed:', error.message);
501
- throw new BadRequestException('Failed to fetch custom source');
502
- }
503
-
504
- default:
505
- throw new BadRequestException(
506
- `Unknown source: ${listMaster.source}`,
507
- );
664
+ case 'OPERATORS':
665
+ return this.getOperatorsDropdown(filterCode, params, loggedInUser);
666
+
667
+ // Add more custom key handlers as needed
668
+ default:
669
+ throw new BadRequestException(`Unknown custom key: ${customKey}`);
670
+ }
671
+ } catch (error) {
672
+ console.error(`❌ Error fetching custom key '${customKey}':`, error.message);
673
+ throw new BadRequestException(
674
+ `Failed to fetch custom key: ${error.message}`,
675
+ );
676
+ }
677
+ }
678
+
679
+ /**
680
+ * Fetch dropdown from External API
681
+ */
682
+ private async fetchFromExternalAPI(
683
+ apiUrl: string,
684
+ filterCode: string,
685
+ params: Record<string, any>,
686
+ loggedInUser: UserData,
687
+ ) {
688
+ try {
689
+ // Build full API URL with filter code if provided
690
+ const fullUrl = filterCode ? `${apiUrl}/${filterCode}` : apiUrl;
691
+
692
+ // Make external API call using Axios
693
+ const response = await axios.get(fullUrl, {
694
+ params: {
695
+ ...params,
696
+ enterprise_id: loggedInUser.enterprise_id,
697
+ },
698
+ timeout: 10000, // 10 seconds timeout
699
+ headers: {
700
+ 'Content-Type': 'application/json',
701
+ 'Authorization': `Bearer ${this.configService.get('EXTERNAL_API_TOKEN')}`,
702
+ },
703
+ });
704
+
705
+ return response.data;
706
+ } catch (error) {
707
+ console.error(`❌ Error calling external API '${apiUrl}':`, error.message);
708
+
709
+ if (error.response) {
710
+ throw new BadRequestException(
711
+ `External API error: ${error.response.status} - ${error.response.statusText}`,
712
+ );
713
+ } else if (error.request) {
714
+ throw new BadRequestException('External API is not responding');
715
+ } else {
716
+ throw new BadRequestException(
717
+ `Failed to call external API: ${error.message}`,
718
+ );
719
+ }
720
+ }
721
+ }
722
+
723
+ /**
724
+ * Apply filter code to query (custom WHERE conditions)
725
+ */
726
+ private applyFilterCode(
727
+ query: any,
728
+ tableName: string,
729
+ filterCode: string,
730
+ loggedInUser: UserData,
731
+ ): any {
732
+ // Parse filter code and apply conditions
733
+ // Example: "status=active|type=premium"
734
+ const filters = filterCode.split('|');
735
+
736
+ filters.forEach((filter) => {
737
+ const [key, value] = filter.split('=');
738
+ if (key && value) {
739
+ // Handle special variables
740
+ let filterValue: any = value;
741
+ if (value === '{USER_ID}') {
742
+ filterValue = loggedInUser.id;
743
+ } else if (value === '{ENTERPRISE_ID}') {
744
+ filterValue = loggedInUser.enterprise_id;
508
745
  }
746
+
747
+ query = query.andWhere(`${tableName}.${key} = :${key}`, {
748
+ [key]: filterValue,
749
+ });
509
750
  }
510
- } else {
511
- const client = this.factory.getClient(appCode);
751
+ });
752
+
753
+ return query;
754
+ }
755
+
756
+ /**
757
+ * Format dropdown response with consistent structure
758
+ */
759
+ private formatDropdownResponse(data: any[], config: any): any[] {
760
+ return data.map((item) => ({
761
+ id: item.id,
762
+ value: item.value || item.name || item.title,
763
+ label: item.label || item.display_name || item.name || item.title,
764
+ code: item.code,
765
+ ...item, // Include all other fields
766
+ }));
767
+ }
768
+
769
+ /**
770
+ * Forward request to cross-app microservice (CROSS APP)
771
+ */
772
+ private async processCrossAppDropdown(
773
+ targetAppCode: string,
774
+ entity_type: string,
775
+ attribute_key: string,
776
+ loggedInUser: UserData,
777
+ body: Record<string, any>,
778
+ ) {
779
+ try {
780
+ // Get microservice client for target app
781
+ const client = this.factory.getClient(targetAppCode);
512
782
 
513
783
  if (!client) {
514
- return;
784
+ throw new BadRequestException(
785
+ `Microservice client for app '${targetAppCode}' not available`,
786
+ );
515
787
  }
516
788
 
517
- return client
789
+ // Forward the request to target microservice
790
+ // The target microservice will execute the same process recursively
791
+ const response = await client
518
792
  .send('getDropdownData', {
519
793
  entity_type,
520
794
  attribute_key,
@@ -522,6 +796,94 @@ export class ListMasterService {
522
796
  body,
523
797
  })
524
798
  .toPromise();
799
+
800
+ return response;
801
+ } catch (error) {
802
+ console.error(
803
+ `❌ Error calling cross-app microservice '${targetAppCode}':`,
804
+ error.message,
805
+ );
806
+ throw new BadRequestException(
807
+ `Failed to fetch dropdown from app '${targetAppCode}': ${error.message}`,
808
+ );
809
+ }
810
+ }
811
+
812
+ // Example custom key handlers
813
+ private async getUserRolesDropdown(
814
+ filterCode: string,
815
+ params: Record<string, any>,
816
+ loggedInUser: UserData,
817
+ ) {
818
+ // TODO: Implement roles service integration
819
+ // return this.rolesService.getActiveRoles(loggedInUser.enterprise_id, params);
820
+ throw new BadRequestException('USER_ROLES handler not implemented yet');
821
+ }
822
+
823
+ private async getDepartmentsDropdown(
824
+ filterCode: string,
825
+ params: Record<string, any>,
826
+ loggedInUser: UserData,
827
+ ) {
828
+ // TODO: Implement departments service integration
829
+ // return this.departmentService.getActiveDepartments(loggedInUser.enterprise_id, params);
830
+ throw new BadRequestException('DEPARTMENTS handler not implemented yet');
831
+ }
832
+
833
+ private async getFinancialYearsDropdown(
834
+ filterCode: string,
835
+ params: Record<string, any>,
836
+ loggedInUser: UserData,
837
+ ) {
838
+ // Generate financial years dynamically
839
+ const currentYear = new Date().getFullYear();
840
+ const years: Array<{ id: number; value: string; label: string }> = [];
841
+ for (let i = -5; i <= 5; i++) {
842
+ const year = currentYear + i;
843
+ years.push({
844
+ id: year,
845
+ value: `FY${year}-${year + 1}`,
846
+ label: `FY ${year}-${year + 1}`,
847
+ });
525
848
  }
849
+ return years;
850
+ }
851
+
852
+ private async getOperatorsDropdown(
853
+ filterCode: string,
854
+ params: Record<string, any>,
855
+ loggedInUser: UserData,
856
+ ) {
857
+ // Return predefined operators
858
+ return [
859
+ { id: 1, value: '=', label: 'Equals' },
860
+ { id: 2, value: '!=', label: 'Not Equals' },
861
+ { id: 3, value: '>', label: 'Greater Than' },
862
+ { id: 4, value: '<', label: 'Less Than' },
863
+ { id: 5, value: '>=', label: 'Greater Than or Equal' },
864
+ { id: 6, value: '<=', label: 'Less Than or Equal' },
865
+ { id: 7, value: 'LIKE', label: 'Contains' },
866
+ { id: 8, value: 'IN', label: 'In List' },
867
+ ];
868
+ }
869
+
870
+ /**
871
+ * Parse filter code string into key-value params
872
+ * Example: "status=active|type=premium" => { status: 'active', type: 'premium' }
873
+ */
874
+ private parseFilterCode(filterCode: string): Record<string, any> {
875
+ if (!filterCode) return {};
876
+
877
+ const params: Record<string, any> = {};
878
+ const filters = filterCode.split('|');
879
+
880
+ filters.forEach((filter) => {
881
+ const [key, value] = filter.split('=');
882
+ if (key && value) {
883
+ params[key.trim()] = value.trim();
884
+ }
885
+ });
886
+
887
+ return params;
526
888
  }
527
889
  }
@@ -81,16 +81,4 @@ export class AttributeMasterController {
81
81
  loggedInUser,
82
82
  );
83
83
  }
84
-
85
- @Get('getAll/:entityType')
86
- async getAttributes(
87
- @Param('entityType') entityType: string,
88
- @Req() req: Request & { user: any },
89
- ) {
90
- const loggedInUser = req.user.userData;
91
- return await this.attributeMasterService.getAttributes(
92
- entityType,
93
- loggedInUser,
94
- );
95
- }
96
84
  }
@@ -33,9 +33,8 @@ export class EntityDynamicController {
33
33
  if (!entityType) {
34
34
  throw new BadRequestException(`Query param "entity_type" is required`);
35
35
  }
36
-
37
- return await this.entityDynamicService.createEntityWithRelation(
38
- entityType,
36
+ data['entity_type'] = entityType;
37
+ return await this.entityDynamicService.createEntity(
39
38
  data,
40
39
  loggedInUser,
41
40
  );
@@ -63,10 +62,9 @@ export class EntityDynamicController {
63
62
  if (!existingEntity) {
64
63
  throw new NotFoundException(`No entity found for id "${id}"`);
65
64
  }
66
-
67
- return await this.entityDynamicService.updateEntityWithRelations(
68
- entityType,
69
- id,
65
+ data['id'] = id;
66
+ data['entity_type'] = entityType;
67
+ return await this.entityDynamicService.updateEntity(
70
68
  data,
71
69
  loggedInUser,
72
70
  );
@@ -85,7 +83,7 @@ export class EntityDynamicController {
85
83
  throw new BadRequestException(`Query param "entity_type" is required`);
86
84
  }
87
85
 
88
- const entity = await this.entityDynamicService.getEntityWithRelation(
86
+ const entity = await this.entityDynamicService.getEntityData(
89
87
  entityType,
90
88
  id,
91
89
  loggedInUser,
@@ -171,7 +171,6 @@ export class EntityController {
171
171
  entityData,
172
172
  loggedInUser as UserData,
173
173
  null,
174
- appcode,
175
174
  );
176
175
 
177
176
  // ✅ Run workflow automation (no preUpdateStates for CREATE)
@@ -1,17 +1,7 @@
1
- import {
2
- Body,
3
- Controller, HttpCode,
4
- HttpStatus,
5
- Post,
6
- Query,
7
- Req,
8
- Res,
9
- UseGuards,
10
- } from '@nestjs/common';
1
+ import { Body, Controller, HttpCode, HttpStatus, Post, Query, Req, Res, UseGuards } from '@nestjs/common';
11
2
  import { EntityTableService } from '../service/entity-table.service';
12
3
  import { Response } from 'express';
13
4
  import { JwtAuthGuard } from '../../auth/guards/jwt.guard';
14
- import { PopulateMetaService } from '../service/populate-meta.service';
15
5
  import { EntityMasterService } from '../service/entity-master.service';
16
6
 
17
7
  @Controller('meta')
@@ -19,9 +9,9 @@ import { EntityMasterService } from '../service/entity-master.service';
19
9
  export class MetaController {
20
10
  constructor(
21
11
  private readonly entityTableService: EntityTableService,
22
- private readonly populateMetaService: PopulateMetaService,
23
12
  private readonly entityMaster: EntityMasterService,
24
- ) {}
13
+ ) {
14
+ }
25
15
 
26
16
  @Post('get-table-data')
27
17
  @HttpCode(HttpStatus.OK)
@@ -64,18 +54,6 @@ export class MetaController {
64
54
  });
65
55
  }
66
56
 
67
- @Post('populate')
68
- @HttpCode(HttpStatus.OK)
69
- async populateMetaData(
70
- @Query('organization_id') organizationId: number,
71
- @Res() response: Response,
72
- @Req() req: Request & { user: any },
73
- ) {
74
- const loggedInUser = req.user.userData;
75
- const result =
76
- await this.populateMetaService.populateMetaData(organizationId);
77
- return response.status(HttpStatus.OK).json(result);
78
- }
79
57
 
80
58
  @Post('operation-list')
81
59
  @HttpCode(HttpStatus.OK)
@@ -89,4 +89,17 @@ export class AttributeMaster extends BaseEntity {
89
89
 
90
90
  @Column({ name: 'flat_json_key', nullable: true })
91
91
  flat_json_key: string;
92
+
93
+ // Dropdown data source fields
94
+ @Column({ name: 'ds_category', type: 'varchar', nullable: true, length: 50 })
95
+ ds_category: string;
96
+
97
+ @Column({ name: 'ds_entitytype', type: 'varchar', nullable: true, length: 255 })
98
+ ds_entitytype: string;
99
+
100
+ @Column({ name: 'ds_filtercode', type: 'varchar', nullable: true, length: 500 })
101
+ ds_filtercode: string;
102
+
103
+ @Column({ name: 'ds_appcode', type: 'varchar', nullable: true, length: 50 })
104
+ ds_appcode: string;
92
105
  }