rez_core 6.5.59 → 6.5.61

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 (451) hide show
  1. package/dist/app.module.js +3 -5
  2. package/dist/app.module.js.map +1 -1
  3. package/dist/core.module.js +38 -63
  4. package/dist/core.module.js.map +1 -1
  5. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +6 -0
  6. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +32 -0
  7. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +1 -0
  8. package/dist/module/auth/strategies/jwt.strategy.d.ts +1 -2
  9. package/dist/module/auth/strategies/jwt.strategy.js +2 -3
  10. package/dist/module/auth/strategies/jwt.strategy.js.map +1 -1
  11. package/dist/module/dashboard/dashboard.module.js +1 -1
  12. package/dist/module/dashboard/dashboard.module.js.map +1 -1
  13. package/dist/module/dashboard/service/dashboard.service.js +2 -1
  14. package/dist/module/dashboard/service/dashboard.service.js.map +1 -1
  15. package/dist/module/enterprise/controller/organization.controller.d.ts +4 -12
  16. package/dist/module/enterprise/controller/organization.controller.js +8 -64
  17. package/dist/module/enterprise/controller/organization.controller.js.map +1 -1
  18. package/dist/module/enterprise/enterprise.module.js +15 -10
  19. package/dist/module/enterprise/enterprise.module.js.map +1 -1
  20. package/dist/module/enterprise/entity/enterprise.entity.d.ts +3 -1
  21. package/dist/module/enterprise/entity/enterprise.entity.js +12 -4
  22. package/dist/module/enterprise/entity/enterprise.entity.js.map +1 -1
  23. package/dist/module/enterprise/entity/organization-app-mapping.entity.d.ts +1 -6
  24. package/dist/module/enterprise/entity/organization-app-mapping.entity.js +4 -21
  25. package/dist/module/enterprise/entity/organization-app-mapping.entity.js.map +1 -1
  26. package/dist/module/enterprise/entity/organization.entity.d.ts +17 -3
  27. package/dist/module/enterprise/entity/organization.entity.js +73 -11
  28. package/dist/module/enterprise/entity/organization.entity.js.map +1 -1
  29. package/dist/module/enterprise/repository/enterprise.repository.d.ts +2 -4
  30. package/dist/module/enterprise/repository/enterprise.repository.js +4 -19
  31. package/dist/module/enterprise/repository/enterprise.repository.js.map +1 -1
  32. package/dist/module/enterprise/service/brand.service.d.ts +3 -0
  33. package/dist/module/enterprise/service/brand.service.js +17 -0
  34. package/dist/module/enterprise/service/brand.service.js.map +1 -1
  35. package/dist/module/enterprise/service/enterprise.service.d.ts +2 -2
  36. package/dist/module/enterprise/service/enterprise.service.js +4 -6
  37. package/dist/module/enterprise/service/enterprise.service.js.map +1 -1
  38. package/dist/module/enterprise/service/organization.service.d.ts +6 -6
  39. package/dist/module/enterprise/service/organization.service.js +27 -109
  40. package/dist/module/enterprise/service/organization.service.js.map +1 -1
  41. package/dist/module/entity_json/controller/entity_json.controller.d.ts +2 -9
  42. package/dist/module/entity_json/controller/entity_json.controller.js.map +1 -1
  43. package/dist/module/entity_json/entity/entityJson.entity.d.ts +2 -1
  44. package/dist/module/entity_json/entity/entityJson.entity.js +5 -1
  45. package/dist/module/entity_json/entity/entityJson.entity.js.map +1 -1
  46. package/dist/module/entity_json/entity_json.module.js +7 -2
  47. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  48. package/dist/module/entity_json/service/entity_json.service.d.ts +2 -10
  49. package/dist/module/entity_json/service/entity_json.service.js +101 -25
  50. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  51. package/dist/module/filter/controller/filter.controller.d.ts +12 -0
  52. package/dist/module/filter/controller/filter.controller.js +1 -1
  53. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  54. package/dist/module/filter/filter.module.js +11 -2
  55. package/dist/module/filter/filter.module.js.map +1 -1
  56. package/dist/module/filter/service/filter.service.d.ts +38 -2
  57. package/dist/module/filter/service/filter.service.js +43 -50
  58. package/dist/module/filter/service/filter.service.js.map +1 -1
  59. package/dist/module/filter/service/flatjson-filter.service.d.ts +32 -0
  60. package/dist/module/filter/service/flatjson-filter.service.js +632 -0
  61. package/dist/module/filter/service/flatjson-filter.service.js.map +1 -0
  62. package/dist/module/filter/service/saved-filter.service.d.ts +3 -2
  63. package/dist/module/filter/service/saved-filter.service.js +14 -18
  64. package/dist/module/filter/service/saved-filter.service.js.map +1 -1
  65. package/dist/module/integration/service/integration.service.d.ts +1 -0
  66. package/dist/module/integration/service/integration.service.js +2 -1
  67. package/dist/module/integration/service/integration.service.js.map +1 -1
  68. package/dist/module/integration/service/wrapper.service.js +1 -0
  69. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  70. package/dist/module/layout/controller/layout.controller.d.ts +3 -1
  71. package/dist/module/layout/controller/layout.controller.js +7 -3
  72. package/dist/module/layout/controller/layout.controller.js.map +1 -1
  73. package/dist/module/layout/entity/header-section.entity.d.ts +2 -0
  74. package/dist/module/layout/entity/header-section.entity.js +8 -0
  75. package/dist/module/layout/entity/header-section.entity.js.map +1 -1
  76. package/dist/module/layout/layout.module.js +2 -1
  77. package/dist/module/layout/layout.module.js.map +1 -1
  78. package/dist/module/layout/repository/header-section.repository.d.ts +1 -0
  79. package/dist/module/layout/repository/header-section.repository.js +5 -0
  80. package/dist/module/layout/repository/header-section.repository.js.map +1 -1
  81. package/dist/module/layout/service/header-section.service.d.ts +1 -1
  82. package/dist/module/layout/service/header-section.service.js +1 -1
  83. package/dist/module/layout/service/header-section.service.js.map +1 -1
  84. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +41 -0
  85. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +90 -0
  86. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
  87. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +13 -0
  88. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +64 -0
  89. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +1 -0
  90. package/dist/module/linked_attributes/linked_attributes.module.js +8 -1
  91. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
  92. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +65 -1
  93. package/dist/module/linked_attributes/service/linked_attributes.service.js +287 -2
  94. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  95. package/dist/module/listmaster/service/list-master.service.d.ts +1 -14
  96. package/dist/module/listmaster/service/list-master.service.js +44 -217
  97. package/dist/module/listmaster/service/list-master.service.js.map +1 -1
  98. package/dist/module/meta/controller/app-master.controller.js.map +1 -0
  99. package/dist/module/meta/controller/attribute-master.controller.d.ts +3 -0
  100. package/dist/module/meta/controller/attribute-master.controller.js +12 -0
  101. package/dist/module/meta/controller/attribute-master.controller.js.map +1 -1
  102. package/dist/module/meta/controller/entity-dynamic.controller.js +3 -6
  103. package/dist/module/meta/controller/entity-dynamic.controller.js.map +1 -1
  104. package/dist/module/meta/controller/entity.controller.js +1 -1
  105. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  106. package/dist/module/meta/controller/meta.controller.d.ts +6 -1
  107. package/dist/module/meta/controller/meta.controller.js +19 -1
  108. package/dist/module/meta/controller/meta.controller.js.map +1 -1
  109. package/dist/module/meta/entity/app-master.entity.d.ts +13 -0
  110. package/dist/module/{app_master → meta}/entity/app-master.entity.js +12 -30
  111. package/dist/module/meta/entity/app-master.entity.js.map +1 -0
  112. package/dist/module/meta/entity/attribute-master.entity.d.ts +0 -4
  113. package/dist/module/meta/entity/attribute-master.entity.js +0 -16
  114. package/dist/module/meta/entity/attribute-master.entity.js.map +1 -1
  115. package/dist/module/meta/entity/entity-master.entity.d.ts +1 -0
  116. package/dist/module/meta/entity/entity-master.entity.js +8 -1
  117. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  118. package/dist/module/meta/entity.module.js +14 -3
  119. package/dist/module/meta/entity.module.js.map +1 -1
  120. package/dist/module/{app_master → meta}/repository/app-master.repository.d.ts +2 -2
  121. package/dist/module/{app_master → meta}/repository/app-master.repository.js +4 -4
  122. package/dist/module/meta/repository/app-master.repository.js.map +1 -0
  123. package/dist/module/meta/service/app-master.service.js.map +1 -0
  124. package/dist/module/meta/service/attribute-master.service.d.ts +6 -1
  125. package/dist/module/meta/service/attribute-master.service.js +22 -2
  126. package/dist/module/meta/service/attribute-master.service.js.map +1 -1
  127. package/dist/module/meta/service/entity-dynamic.service.d.ts +12 -9
  128. package/dist/module/meta/service/entity-dynamic.service.js +22 -20
  129. package/dist/module/meta/service/entity-dynamic.service.js.map +1 -1
  130. package/dist/module/meta/service/entity-master.service.js +1 -0
  131. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  132. package/dist/module/meta/service/entity-relation.service.d.ts +4 -3
  133. package/dist/module/meta/service/entity-relation.service.js +10 -4
  134. package/dist/module/meta/service/entity-relation.service.js.map +1 -1
  135. package/dist/module/meta/service/entity-service-impl.service.d.ts +2 -2
  136. package/dist/module/meta/service/entity-service-impl.service.js +15 -11
  137. package/dist/module/meta/service/entity-service-impl.service.js.map +1 -1
  138. package/dist/module/meta/service/entity-table.service.d.ts +5 -4
  139. package/dist/module/meta/service/entity-table.service.js +45 -24
  140. package/dist/module/meta/service/entity-table.service.js.map +1 -1
  141. package/dist/module/meta/service/populate-meta.service.d.ts +13 -0
  142. package/dist/module/{enterprise → meta}/service/populate-meta.service.js +8 -2
  143. package/dist/module/meta/service/populate-meta.service.js.map +1 -0
  144. package/dist/module/meta/service/resolver.service.d.ts +1 -1
  145. package/dist/module/meta/service/resolver.service.js +6 -3
  146. package/dist/module/meta/service/resolver.service.js.map +1 -1
  147. package/dist/module/module/controller/module-access.controller.d.ts +4 -3
  148. package/dist/module/module/controller/module-access.controller.js +8 -13
  149. package/dist/module/module/controller/module-access.controller.js.map +1 -1
  150. package/dist/module/module/entity/menu.entity.d.ts +3 -6
  151. package/dist/module/module/entity/menu.entity.js +10 -19
  152. package/dist/module/module/entity/menu.entity.js.map +1 -1
  153. package/dist/module/module/entity/module-access.entity.d.ts +1 -15
  154. package/dist/module/module/entity/module-access.entity.js +3 -49
  155. package/dist/module/module/entity/module-access.entity.js.map +1 -1
  156. package/dist/module/module/entity/module-action.entity.d.ts +2 -4
  157. package/dist/module/module/entity/module-action.entity.js +6 -11
  158. package/dist/module/module/entity/module-action.entity.js.map +1 -1
  159. package/dist/module/module/entity/module.entity.d.ts +5 -3
  160. package/dist/module/module/entity/module.entity.js +18 -8
  161. package/dist/module/module/entity/module.entity.js.map +1 -1
  162. package/dist/module/module/module.module.d.ts +1 -1
  163. package/dist/module/module/module.module.js +7 -5
  164. package/dist/module/module/module.module.js.map +1 -1
  165. package/dist/module/module/repository/menu.repository.d.ts +3 -3
  166. package/dist/module/module/repository/menu.repository.js +27 -38
  167. package/dist/module/module/repository/menu.repository.js.map +1 -1
  168. package/dist/module/module/repository/module-access.repository.d.ts +6 -6
  169. package/dist/module/module/repository/module-access.repository.js +50 -100
  170. package/dist/module/module/repository/module-access.repository.js.map +1 -1
  171. package/dist/module/module/service/menu.service.d.ts +4 -2
  172. package/dist/module/module/service/menu.service.js +10 -7
  173. package/dist/module/module/service/menu.service.js.map +1 -1
  174. package/dist/module/module/service/module-access.service.d.ts +10 -7
  175. package/dist/module/module/service/module-access.service.js +24 -22
  176. package/dist/module/module/service/module-access.service.js.map +1 -1
  177. package/dist/module/notification/entity/notification.entity.d.ts +2 -17
  178. package/dist/module/notification/entity/notification.entity.js +2 -68
  179. package/dist/module/notification/entity/notification.entity.js.map +1 -1
  180. package/dist/module/notification/notification.module.js +4 -3
  181. package/dist/module/notification/notification.module.js.map +1 -1
  182. package/dist/module/notification/service/email.service.d.ts +0 -1
  183. package/dist/module/notification/service/email.service.js +0 -14
  184. package/dist/module/notification/service/email.service.js.map +1 -1
  185. package/dist/module/notification/service/notification.service.d.ts +3 -1
  186. package/dist/module/notification/service/notification.service.js +5 -2
  187. package/dist/module/notification/service/notification.service.js.map +1 -1
  188. package/dist/module/notification/service/otp.service.d.ts +2 -2
  189. package/dist/module/notification/service/otp.service.js +5 -4
  190. package/dist/module/notification/service/otp.service.js.map +1 -1
  191. package/dist/module/user/controller/login.controller.d.ts +3 -1
  192. package/dist/module/user/controller/login.controller.js +6 -2
  193. package/dist/module/user/controller/login.controller.js.map +1 -1
  194. package/dist/module/user/controller/user.controller.d.ts +2 -0
  195. package/dist/module/user/controller/user.controller.js +13 -0
  196. package/dist/module/user/controller/user.controller.js.map +1 -1
  197. package/dist/module/user/dto/create-user.dto.d.ts +3 -6
  198. package/dist/module/user/dto/create-user.dto.js +11 -17
  199. package/dist/module/user/dto/create-user.dto.js.map +1 -1
  200. package/dist/module/user/entity/role.entity.d.ts +6 -18
  201. package/dist/module/user/entity/role.entity.js +19 -64
  202. package/dist/module/user/entity/role.entity.js.map +1 -1
  203. package/dist/module/user/entity/user-role-mapping.entity.d.ts +0 -10
  204. package/dist/module/user/entity/user-role-mapping.entity.js +1 -33
  205. package/dist/module/user/entity/user-role-mapping.entity.js.map +1 -1
  206. package/dist/module/user/entity/user-session.entity.d.ts +2 -0
  207. package/dist/module/user/entity/user-session.entity.js +20 -2
  208. package/dist/module/user/entity/user-session.entity.js.map +1 -1
  209. package/dist/module/user/entity/user.entity.d.ts +5 -17
  210. package/dist/module/user/entity/user.entity.js +15 -61
  211. package/dist/module/user/entity/user.entity.js.map +1 -1
  212. package/dist/module/user/repository/role.repository.d.ts +2 -7
  213. package/dist/module/user/repository/role.repository.js +8 -23
  214. package/dist/module/user/repository/role.repository.js.map +1 -1
  215. package/dist/module/user/repository/user-role-mapping.repository.d.ts +0 -1
  216. package/dist/module/user/repository/user-role-mapping.repository.js +0 -3
  217. package/dist/module/user/repository/user-role-mapping.repository.js.map +1 -1
  218. package/dist/module/user/repository/user.repository.d.ts +2 -5
  219. package/dist/module/user/repository/user.repository.js +7 -26
  220. package/dist/module/user/repository/user.repository.js.map +1 -1
  221. package/dist/module/user/repository/userSession.repository.d.ts +0 -1
  222. package/dist/module/user/repository/userSession.repository.js +0 -3
  223. package/dist/module/user/repository/userSession.repository.js.map +1 -1
  224. package/dist/module/user/service/login.service.d.ts +5 -3
  225. package/dist/module/user/service/login.service.js +42 -43
  226. package/dist/module/user/service/login.service.js.map +1 -1
  227. package/dist/module/user/service/role.service.d.ts +11 -24
  228. package/dist/module/user/service/role.service.js +40 -54
  229. package/dist/module/user/service/role.service.js.map +1 -1
  230. package/dist/module/user/service/user-role-mapping.service.d.ts +0 -2
  231. package/dist/module/user/service/user-role-mapping.service.js +0 -6
  232. package/dist/module/user/service/user-role-mapping.service.js.map +1 -1
  233. package/dist/module/user/service/user-session.service.d.ts +4 -3
  234. package/dist/module/user/service/user-session.service.js +11 -10
  235. package/dist/module/user/service/user-session.service.js.map +1 -1
  236. package/dist/module/user/service/user.service.d.ts +22 -33
  237. package/dist/module/user/service/user.service.js +58 -66
  238. package/dist/module/user/service/user.service.js.map +1 -1
  239. package/dist/module/user/user.module.js +7 -2
  240. package/dist/module/user/user.module.js.map +1 -1
  241. package/dist/module/workflow/repository/action-data.repository.d.ts +1 -1
  242. package/dist/module/workflow/repository/action-data.repository.js +8 -6
  243. package/dist/module/workflow/repository/action-data.repository.js.map +1 -1
  244. package/dist/module/workflow/repository/action.repository.d.ts +1 -1
  245. package/dist/module/workflow/repository/action.repository.js +10 -10
  246. package/dist/module/workflow/repository/action.repository.js.map +1 -1
  247. package/dist/module/workflow/repository/form-master.repository.d.ts +1 -1
  248. package/dist/module/workflow/repository/form-master.repository.js +2 -2
  249. package/dist/module/workflow/repository/form-master.repository.js.map +1 -1
  250. package/dist/module/workflow/service/action-data.service.js +2 -1
  251. package/dist/module/workflow/service/action-data.service.js.map +1 -1
  252. package/dist/module/workflow/service/action.service.js +2 -2
  253. package/dist/module/workflow/service/action.service.js.map +1 -1
  254. package/dist/module/workflow/service/comm-template.service.js +2 -0
  255. package/dist/module/workflow/service/comm-template.service.js.map +1 -1
  256. package/dist/module/workflow/service/entity-modification.service.js +1 -0
  257. package/dist/module/workflow/service/entity-modification.service.js.map +1 -1
  258. package/dist/module/workflow/service/form-master.service.js +2 -2
  259. package/dist/module/workflow/service/form-master.service.js.map +1 -1
  260. package/dist/module/workflow/service/populate-workflow.service.d.ts +1 -1
  261. package/dist/module/workflow/service/populate-workflow.service.js +1 -1
  262. package/dist/module/workflow/service/populate-workflow.service.js.map +1 -1
  263. package/dist/module/workflow/service/task.service.js +4 -1
  264. package/dist/module/workflow/service/task.service.js.map +1 -1
  265. package/dist/module/workflow/service/workflow-meta.service.js +7 -2
  266. package/dist/module/workflow/service/workflow-meta.service.js.map +1 -1
  267. package/dist/module/workflow/service/workflow.service.js +2 -2
  268. package/dist/module/workflow/service/workflow.service.js.map +1 -1
  269. package/dist/module/workflow/workflow.module.js +0 -2
  270. package/dist/module/workflow/workflow.module.js.map +1 -1
  271. package/dist/module/workflow-automation/service/workflow-automation.service.js +6 -11
  272. package/dist/module/workflow-automation/service/workflow-automation.service.js.map +1 -1
  273. package/dist/module/workflow-automation/workflow-automation.module.js +1 -3
  274. package/dist/module/workflow-automation/workflow-automation.module.js.map +1 -1
  275. package/dist/module/workflow-schedule/service/workflow-schedule.service.js +2 -0
  276. package/dist/module/workflow-schedule/service/workflow-schedule.service.js.map +1 -1
  277. package/dist/table.config.d.ts +5 -3
  278. package/dist/table.config.js +3 -3
  279. package/dist/table.config.js.map +1 -1
  280. package/dist/tsconfig.build.tsbuildinfo +1 -1
  281. package/package.json +2 -2
  282. package/src/app.module.ts +5 -7
  283. package/src/core.module.ts +44 -58
  284. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -0
  285. package/src/module/auth/strategies/jwt.strategy.ts +2 -4
  286. package/src/module/dashboard/dashboard.module.ts +3 -3
  287. package/src/module/dashboard/service/dashboard.service.ts +2 -1
  288. package/src/module/enterprise/controller/organization.controller.ts +4 -60
  289. package/src/module/enterprise/enterprise.module.ts +18 -16
  290. package/src/module/enterprise/entity/enterprise.entity.ts +11 -5
  291. package/src/module/enterprise/entity/organization-app-mapping.entity.ts +4 -18
  292. package/src/module/enterprise/entity/organization.entity.ts +58 -11
  293. package/src/module/enterprise/repository/enterprise.repository.ts +4 -26
  294. package/src/module/enterprise/service/brand.service.ts +5 -75
  295. package/src/module/enterprise/service/enterprise.service.ts +4 -12
  296. package/src/module/enterprise/service/organization.service.ts +28 -151
  297. package/src/module/entity_json/controller/entity_json.controller.ts +13 -0
  298. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2804 -0
  299. package/src/module/entity_json/entity/entityJson.entity.ts +4 -1
  300. package/src/module/entity_json/entity_json.module.ts +9 -5
  301. package/src/module/entity_json/service/entity_json.service.ts +237 -51
  302. package/src/module/filter/controller/filter.controller.ts +1 -3
  303. package/src/module/filter/filter.module.ts +12 -3
  304. package/src/module/filter/service/filter.service.ts +130 -73
  305. package/src/module/filter/service/flatjson-filter.service.ts +903 -0
  306. package/src/module/filter/service/saved-filter.service.ts +16 -26
  307. package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -0
  308. package/src/module/integration/service/integration.service.ts +6 -2
  309. package/src/module/integration/service/wrapper.service.ts +1 -0
  310. package/src/module/layout/controller/layout.controller.ts +8 -1
  311. package/src/module/layout/entity/header-section.entity.ts +6 -0
  312. package/src/module/layout/layout.module.ts +1 -1
  313. package/src/module/layout/repository/header-section.repository.ts +6 -0
  314. package/src/module/layout/service/header-section.service.ts +1 -1
  315. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +100 -0
  316. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -0
  317. package/src/module/linked_attributes/linked_attributes.module.ts +9 -2
  318. package/src/module/linked_attributes/service/linked_attributes.service.ts +578 -3
  319. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -0
  320. package/src/module/listmaster/service/list-master.service.ts +75 -437
  321. package/src/module/meta/controller/attribute-master.controller.ts +12 -0
  322. package/src/module/meta/controller/entity-dynamic.controller.ts +8 -6
  323. package/src/module/meta/controller/entity.controller.ts +1 -0
  324. package/src/module/meta/controller/meta.controller.ts +25 -3
  325. package/src/module/{app_master → meta}/entity/app-master.entity.ts +9 -22
  326. package/src/module/meta/entity/attribute-master.entity.ts +0 -13
  327. package/src/module/meta/entity/entity-master.entity.ts +9 -3
  328. package/src/module/meta/entity.module.ts +20 -6
  329. package/src/module/{app_master → meta}/repository/app-master.repository.ts +3 -3
  330. package/src/module/meta/service/attribute-master.service.ts +31 -1
  331. package/src/module/meta/service/entity-dynamic.service.ts +26 -23
  332. package/src/module/meta/service/entity-master.service.ts +1 -0
  333. package/src/module/meta/service/entity-relation.service.ts +10 -6
  334. package/src/module/meta/service/entity-service-impl.service.ts +15 -19
  335. package/src/module/meta/service/entity-table.service.ts +82 -68
  336. package/src/module/meta/service/entity.service.ts +0 -1
  337. package/src/module/{enterprise → meta}/service/populate-meta.service.ts +5 -2
  338. package/src/module/meta/service/resolver.service.ts +4 -0
  339. package/src/module/module/controller/module-access.controller.ts +9 -14
  340. package/src/module/module/entity/menu.entity.ts +10 -18
  341. package/src/module/module/entity/module-access.entity.ts +3 -40
  342. package/src/module/module/entity/module-action.entity.ts +6 -10
  343. package/src/module/module/entity/module.entity.ts +14 -7
  344. package/src/module/module/module.module.ts +3 -2
  345. package/src/module/module/repository/menu.repository.ts +29 -43
  346. package/src/module/module/repository/module-access.repository.ts +62 -110
  347. package/src/module/module/service/menu.service.ts +9 -7
  348. package/src/module/module/service/module-access.service.ts +34 -22
  349. package/src/module/notification/entity/notification.entity.ts +3 -53
  350. package/src/module/notification/notification.module.ts +5 -6
  351. package/src/module/notification/service/email.service.ts +1 -16
  352. package/src/module/notification/service/notification.service.ts +1 -0
  353. package/src/module/notification/service/otp.service.ts +5 -16
  354. package/src/module/user/controller/login.controller.ts +8 -7
  355. package/src/module/user/controller/user.controller.ts +9 -0
  356. package/src/module/user/dto/create-user.dto.ts +6 -19
  357. package/src/module/user/entity/role.entity.ts +16 -59
  358. package/src/module/user/entity/user-role-mapping.entity.ts +3 -29
  359. package/src/module/user/entity/user-session.entity.ts +19 -3
  360. package/src/module/user/entity/user.entity.ts +13 -48
  361. package/src/module/user/repository/role.repository.ts +12 -32
  362. package/src/module/user/repository/user-role-mapping.repository.ts +1 -5
  363. package/src/module/user/repository/user.repository.ts +9 -36
  364. package/src/module/user/repository/userSession.repository.ts +1 -5
  365. package/src/module/user/service/login.service.ts +51 -47
  366. package/src/module/user/service/role.service.ts +63 -64
  367. package/src/module/user/service/user-role-mapping.service.ts +1 -23
  368. package/src/module/user/service/user-session.service.ts +11 -14
  369. package/src/module/user/service/user.service.ts +95 -76
  370. package/src/module/user/user.module.ts +5 -4
  371. package/src/module/workflow/repository/action-data.repository.ts +8 -6
  372. package/src/module/workflow/repository/action.repository.ts +11 -11
  373. package/src/module/workflow/repository/form-master.repository.ts +2 -2
  374. package/src/module/workflow/service/action-data.service.ts +2 -3
  375. package/src/module/workflow/service/action.service.ts +2 -2
  376. package/src/module/workflow/service/comm-template.service.ts +2 -0
  377. package/src/module/workflow/service/entity-modification.service.ts +1 -0
  378. package/src/module/workflow/service/form-master.service.ts +2 -2
  379. package/src/module/workflow/service/populate-workflow.service.ts +1 -1
  380. package/src/module/workflow/service/task.service.ts +4 -0
  381. package/src/module/workflow/service/workflow-meta.service.ts +7 -2
  382. package/src/module/workflow/service/workflow.service.ts +2 -2
  383. package/src/module/workflow/workflow.module.ts +0 -2
  384. package/src/module/workflow-automation/service/workflow-automation.service.ts +7 -19
  385. package/src/module/workflow-automation/workflow-automation.module.ts +3 -4
  386. package/src/module/workflow-schedule/service/workflow-schedule.service.ts +2 -0
  387. package/src/resources/dev.properties.yaml +2 -2
  388. package/src/table.config.ts +3 -3
  389. package/.claude/settings.local.json +0 -26
  390. package/.idea/250218_nodejs_core.iml +0 -9
  391. package/.idea/codeStyles/Project.xml +0 -59
  392. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  393. package/.idea/copilot.data.migration.agent.xml +0 -6
  394. package/.idea/copilot.data.migration.ask.xml +0 -6
  395. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  396. package/.idea/copilot.data.migration.edit.xml +0 -6
  397. package/.idea/inspectionProfiles/Project_Default.xml +0 -6
  398. package/.idea/misc.xml +0 -6
  399. package/.idea/modules.xml +0 -8
  400. package/.idea/prettier.xml +0 -6
  401. package/.idea/vcs.xml +0 -6
  402. package/dist/constant/status.constant.d.ts +0 -4
  403. package/dist/constant/status.constant.js +0 -9
  404. package/dist/constant/status.constant.js.map +0 -1
  405. package/dist/module/app_master/app-master.module.d.ts +0 -2
  406. package/dist/module/app_master/app-master.module.js +0 -28
  407. package/dist/module/app_master/app-master.module.js.map +0 -1
  408. package/dist/module/app_master/controller/app-master.controller.js.map +0 -1
  409. package/dist/module/app_master/entity/app-master.entity.d.ts +0 -17
  410. package/dist/module/app_master/entity/app-master.entity.js.map +0 -1
  411. package/dist/module/app_master/repository/app-master.repository.js.map +0 -1
  412. package/dist/module/app_master/service/app-master.service.js.map +0 -1
  413. package/dist/module/enterprise/controller/enterprise.controller.d.ts +0 -12
  414. package/dist/module/enterprise/controller/enterprise.controller.js +0 -57
  415. package/dist/module/enterprise/controller/enterprise.controller.js.map +0 -1
  416. package/dist/module/enterprise/controller/meta.controller.d.ts +0 -9
  417. package/dist/module/enterprise/controller/meta.controller.js +0 -43
  418. package/dist/module/enterprise/controller/meta.controller.js.map +0 -1
  419. package/dist/module/enterprise/service/brand-profile.service.d.ts +0 -0
  420. package/dist/module/enterprise/service/brand-profile.service.js +0 -1
  421. package/dist/module/enterprise/service/brand-profile.service.js.map +0 -1
  422. package/dist/module/enterprise/service/populate-meta.service.d.ts +0 -9
  423. package/dist/module/enterprise/service/populate-meta.service.js.map +0 -1
  424. package/dist/module/enterprise/service/school.service.d.ts +0 -0
  425. package/dist/module/enterprise/service/school.service.js +0 -1
  426. package/dist/module/enterprise/service/school.service.js.map +0 -1
  427. package/dist/module/preference_master/entity/preference.entity.d.ts +0 -9
  428. package/dist/module/preference_master/entity/preference.entity.js +0 -48
  429. package/dist/module/preference_master/entity/preference.entity.js.map +0 -1
  430. package/dist/module/preference_master/preference.service.d.ts +0 -8
  431. package/dist/module/preference_master/preference.service.js +0 -31
  432. package/dist/module/preference_master/preference.service.js.map +0 -1
  433. package/dist/module/preference_master/repo/preference.repository.d.ts +0 -8
  434. package/dist/module/preference_master/repo/preference.repository.js +0 -48
  435. package/dist/module/preference_master/repo/preference.repository.js.map +0 -1
  436. package/server.log +0 -850
  437. package/src/constant/status.constant.ts +0 -4
  438. package/src/module/app_master/app-master.module.ts +0 -15
  439. package/src/module/enterprise/controller/enterprise.controller.ts +0 -40
  440. package/src/module/enterprise/controller/meta.controller.ts +0 -23
  441. package/src/module/enterprise/service/brand-profile.service.ts +0 -10
  442. package/src/module/enterprise/service/school.service.ts +0 -5
  443. package/src/module/preference_master/entity/preference.entity.ts +0 -25
  444. package/src/module/preference_master/preference.service.ts +0 -27
  445. package/src/module/preference_master/repo/preference.repository.ts +0 -36
  446. /package/dist/module/{app_master → meta}/controller/app-master.controller.d.ts +0 -0
  447. /package/dist/module/{app_master → meta}/controller/app-master.controller.js +0 -0
  448. /package/dist/module/{app_master → meta}/service/app-master.service.d.ts +0 -0
  449. /package/dist/module/{app_master → meta}/service/app-master.service.js +0 -0
  450. /package/src/module/{app_master → meta}/controller/app-master.controller.ts +0 -0
  451. /package/src/module/{app_master → meta}/service/app-master.service.ts +0 -0
@@ -212,6 +212,14 @@ 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
+
215
223
  // ✅ Apply dynamic params
216
224
  for (const key in params) {
217
225
  qb.andWhere(`${tableName}.${key} = :${key}`, {
@@ -251,7 +259,7 @@ export class ListMasterService {
251
259
 
252
260
  const resolveInactiveStatus = await this.getResolvedListCode(
253
261
  STATUS_INACTIVE,
254
- loggedInUser?.enterprise_id || 0,
262
+ loggedInUser?.organization_id || 0,
255
263
  );
256
264
 
257
265
  // Fetch inactive records (with same filters but without status condition)
@@ -422,373 +430,91 @@ export class ListMasterService {
422
430
  entity_type: string,
423
431
  attribute_key: string,
424
432
  loggedInUser: UserData,
425
- body: Record<string, any>,
433
+ body: Record<string, string>,
426
434
  ) {
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
- );
441
-
442
- if (!attributeMaster) {
443
- throw new BadRequestException(
444
- `Attribute '${attribute_key}' not found for entity '${entity_type}'`,
445
- );
446
- }
447
-
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;
435
+ let entityMaster = await this.entityMasterService.getEntityData(
436
+ entity_type,
437
+ loggedInUser,
438
+ );
439
+ let appCode = entityMaster.appcode;
455
440
 
456
- if (!ds_category) {
457
- throw new BadRequestException(
458
- `Data source category not configured for attribute '${attribute_key}'`,
459
- );
460
- }
441
+ const { inactiveIds, ...params } = body;
461
442
 
462
- const currentAppCode = this.configService.get<string>('appcode');
443
+ const inactiveIdsArray = inactiveIds
444
+ ? inactiveIds.split(',').map((id) => parseInt(id, 10))
445
+ : [];
463
446
 
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;
447
+ const currentAppCode = this.configService.get<string>('appcode');
469
448
 
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,
449
+ if (currentAppCode === appCode || !currentAppCode) {
450
+ const entityAttribute =
451
+ await this.attributeMasterService.findByMappedEntityTypeAndAttributeKey(
484
452
  entity_type,
485
453
  attribute_key,
486
454
  loggedInUser,
487
- body,
488
455
  );
489
- }
490
- } catch (error) {
491
- console.error('❌ Error in getDropDownData:', error.message);
492
- throw error;
493
- }
494
- }
495
-
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,
522
- );
523
-
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);
663
-
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
456
 
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}`,
457
+ if (entityAttribute && entityAttribute.data_source_type) {
458
+ const listMaster = await this.listMasterRepo.findByType(
459
+ entityAttribute.datasource_list,
460
+ loggedInUser?.enterprise_id,
718
461
  );
719
- }
720
- }
721
- }
722
462
 
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;
463
+ if (!listMaster) {
464
+ return;
745
465
  }
746
466
 
747
- query = query.andWhere(`${tableName}.${key} = :${key}`, {
748
- [key]: filterValue,
749
- });
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
+ );
508
+ }
750
509
  }
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);
510
+ } else {
511
+ const client = this.factory.getClient(appCode);
782
512
 
783
513
  if (!client) {
784
- throw new BadRequestException(
785
- `Microservice client for app '${targetAppCode}' not available`,
786
- );
514
+ return;
787
515
  }
788
516
 
789
- // Forward the request to target microservice
790
- // The target microservice will execute the same process recursively
791
- const response = await client
517
+ return client
792
518
  .send('getDropdownData', {
793
519
  entity_type,
794
520
  attribute_key,
@@ -796,94 +522,6 @@ export class ListMasterService {
796
522
  body,
797
523
  })
798
524
  .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
- });
848
525
  }
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;
888
526
  }
889
527
  }
@@ -81,4 +81,16 @@ 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
+ }
84
96
  }
@@ -33,8 +33,9 @@ export class EntityDynamicController {
33
33
  if (!entityType) {
34
34
  throw new BadRequestException(`Query param "entity_type" is required`);
35
35
  }
36
- data['entity_type'] = entityType;
37
- return await this.entityDynamicService.createEntity(
36
+
37
+ return await this.entityDynamicService.createEntityWithRelation(
38
+ entityType,
38
39
  data,
39
40
  loggedInUser,
40
41
  );
@@ -62,9 +63,10 @@ export class EntityDynamicController {
62
63
  if (!existingEntity) {
63
64
  throw new NotFoundException(`No entity found for id "${id}"`);
64
65
  }
65
- data['id'] = id;
66
- data['entity_type'] = entityType;
67
- return await this.entityDynamicService.updateEntity(
66
+
67
+ return await this.entityDynamicService.updateEntityWithRelations(
68
+ entityType,
69
+ id,
68
70
  data,
69
71
  loggedInUser,
70
72
  );
@@ -83,7 +85,7 @@ export class EntityDynamicController {
83
85
  throw new BadRequestException(`Query param "entity_type" is required`);
84
86
  }
85
87
 
86
- const entity = await this.entityDynamicService.getEntityData(
88
+ const entity = await this.entityDynamicService.getEntityWithRelation(
87
89
  entityType,
88
90
  id,
89
91
  loggedInUser,
@@ -171,6 +171,7 @@ export class EntityController {
171
171
  entityData,
172
172
  loggedInUser as UserData,
173
173
  null,
174
+ appcode,
174
175
  );
175
176
 
176
177
  // ✅ Run workflow automation (no preUpdateStates for CREATE)
@@ -1,7 +1,17 @@
1
- import { Body, Controller, HttpCode, HttpStatus, Post, Query, Req, Res, UseGuards } from '@nestjs/common';
1
+ import {
2
+ Body,
3
+ Controller, HttpCode,
4
+ HttpStatus,
5
+ Post,
6
+ Query,
7
+ Req,
8
+ Res,
9
+ UseGuards,
10
+ } from '@nestjs/common';
2
11
  import { EntityTableService } from '../service/entity-table.service';
3
12
  import { Response } from 'express';
4
13
  import { JwtAuthGuard } from '../../auth/guards/jwt.guard';
14
+ import { PopulateMetaService } from '../service/populate-meta.service';
5
15
  import { EntityMasterService } from '../service/entity-master.service';
6
16
 
7
17
  @Controller('meta')
@@ -9,9 +19,9 @@ import { EntityMasterService } from '../service/entity-master.service';
9
19
  export class MetaController {
10
20
  constructor(
11
21
  private readonly entityTableService: EntityTableService,
22
+ private readonly populateMetaService: PopulateMetaService,
12
23
  private readonly entityMaster: EntityMasterService,
13
- ) {
14
- }
24
+ ) {}
15
25
 
16
26
  @Post('get-table-data')
17
27
  @HttpCode(HttpStatus.OK)
@@ -54,6 +64,18 @@ export class MetaController {
54
64
  });
55
65
  }
56
66
 
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
+ }
57
79
 
58
80
  @Post('operation-list')
59
81
  @HttpCode(HttpStatus.OK)