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
@@ -1,3 +1,4 @@
1
+ import { OrganizationData } from './../../enterprise/entity/organization.entity';
1
2
  import { Repository } from 'typeorm';
2
3
  import { UserData } from '../entity/user.entity';
3
4
  import { Injectable } from '@nestjs/common';
@@ -7,46 +8,34 @@ import { InjectRepository } from '@nestjs/typeorm';
7
8
  export class UserRepository {
8
9
  constructor(
9
10
  @InjectRepository(UserData) private userRepository: Repository<UserData>,
10
- ) { }
11
+ ) {}
11
12
 
12
13
  async findById(userId: number): Promise<UserData | null> {
13
14
  return this.userRepository.findOne({ where: { id: userId } });
14
15
  }
15
-
16
16
  async findByEmailId(
17
17
  email: string,
18
- enterprise_id?: number,
19
- getLastApp?: boolean,
18
+ organization_id?: number,
20
19
  ): Promise<UserData | null> {
21
20
  if (!email) return null;
22
21
 
23
22
  const where: any = { email_id: email };
24
-
25
- if (enterprise_id !== undefined) {
26
- where.enterprise_id = enterprise_id;
23
+ if (organization_id !== undefined) {
24
+ where.organization_id = organization_id;
27
25
  }
28
-
29
- const options: any = { where };
30
-
31
- if (getLastApp) {
32
- options.relations = {
33
- last_app: true,
34
- };
35
- }
36
-
37
- return this.userRepository.findOne(options);
26
+ return this.userRepository.findOne({ where });
38
27
  }
39
28
 
40
29
  async findByMobile(
41
30
  mobile: string,
42
- enterprise_id?: number,
31
+ organization_id?: number,
43
32
  appCode?: string,
44
33
  ): Promise<UserData | null> {
45
34
  if (!mobile) return null;
46
35
 
47
36
  const where: any = { mobile };
48
- if (enterprise_id !== undefined) {
49
- where.enterprise_id = enterprise_id;
37
+ if (organization_id !== undefined) {
38
+ where.organization_id = organization_id;
50
39
  }
51
40
  if (appCode !== undefined) {
52
41
  where.appcode = appCode;
@@ -58,20 +47,4 @@ export class UserRepository {
58
47
  async saveUser(user: UserData): Promise<UserData> {
59
48
  return this.userRepository.save(user);
60
49
  }
61
-
62
- async updateUser(id: number, user: UserData) {
63
- return await this.userRepository.update(id, user);
64
- }
65
-
66
- async find(options: any): Promise<UserData[]> {
67
- return await this.userRepository.find(options);
68
- }
69
-
70
- async findMaxIdRecord() {
71
- return await this.userRepository.findOne({
72
- order: { id: 'DESC' },
73
- select: ['id'],
74
- where:{}
75
- });
76
- }
77
50
  }
@@ -8,7 +8,7 @@ export class UserSessionRepository {
8
8
  constructor(
9
9
  @InjectRepository(UserSession)
10
10
  private userSessionRepo: Repository<UserSession>,
11
- ) { }
11
+ ) {}
12
12
 
13
13
  async findBySessionKey(sessionKey: string): Promise<UserSession | null> {
14
14
  return this.userSessionRepo.findOne({ where: { session_key: sessionKey } });
@@ -24,10 +24,6 @@ export class UserSessionRepository {
24
24
  return this.userSessionRepo.save(session);
25
25
  }
26
26
 
27
- async fetchUserFcmToken(user_id: number) {
28
- return await this.userSessionRepo.findOne({ where: { user_id }, select: ['fcm_token'], order: { login_time: 'DESC' } });
29
- }
30
-
31
27
  async logoutSession(sessionKey: string): Promise<void> {
32
28
  await this.userSessionRepo.update(
33
29
  { session_key: sessionKey },
@@ -2,6 +2,8 @@ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
2
2
  import { ConfigService } from '@nestjs/config';
3
3
  import { InjectRepository } from '@nestjs/typeorm';
4
4
  import { INVITATION_STATUS_ACCEPTED, STATUS_ACTIVE } from 'src/constant/global.constant';
5
+ import { OrganizationRepository } from 'src/module/enterprise/repository/organization.repository';
6
+ import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
5
7
  import { Repository } from 'typeorm';
6
8
  import { EncryptUtilService } from '../../../utils/service/encryptUtil.service';
7
9
  import { UserRoleMapping } from '../entity/user-role-mapping.entity';
@@ -9,8 +11,6 @@ import { UserSessionService } from './user-session.service';
9
11
  import { UserService } from './user.service';
10
12
  import { JwtAuthService } from 'src/module/auth/services/jwt.service';
11
13
  import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
12
- import { EnterpriseRepository } from 'src/module/enterprise/repository/enterprise.repository';
13
- import { StatusConstant } from '../../../constant/status.constant';
14
14
 
15
15
  @Injectable()
16
16
  export class LoginService {
@@ -20,7 +20,9 @@ export class LoginService {
20
20
  private configService: ConfigService,
21
21
  @InjectRepository(UserRoleMapping)
22
22
  private readonly userRoleMappingRepository: Repository<UserRoleMapping>,
23
- private readonly enterpriseRepository: EnterpriseRepository,
23
+ private readonly organizationRepository: OrganizationRepository,
24
+ @Inject('ListMasterService')
25
+ private readonly listMasterService: ListMasterService,
24
26
  private readonly jwtAuthService: JwtAuthService,
25
27
  private readonly reflectionHelper: ReflectionHelper,
26
28
  ) {
@@ -37,49 +39,53 @@ export class LoginService {
37
39
  }): Promise<any> {
38
40
  const { email_id, password, is_otp = false, subdomain } = data;
39
41
 
40
- let enterprise;
42
+ let organization;
41
43
 
42
44
  if (subdomain) {
43
- enterprise =
44
- await this.enterpriseRepository.findEnterpriseBySubdomain(
45
+ organization =
46
+ await this.organizationRepository.findOrganizationBySubdomain(
45
47
  subdomain,
46
48
  );
47
49
 
48
- if (!enterprise) {
50
+ if (!organization) {
49
51
  return {
50
52
  success: false,
51
- message: 'Enterprise not found.',
53
+ message: 'Organization not found.',
52
54
  };
53
55
  }
54
56
  }
55
57
 
56
- // 🔹 Step 2: Find the user by email + enterprise check
58
+ // 🔹 Step 2: Find the user by email + organization check
57
59
  const user = await this.userService.findByEmailId(
58
60
  email_id,
59
- enterprise?.id,
60
- true
61
+ organization?.id,
61
62
  );
62
63
 
63
- if (!user || (enterprise && user.enterprise_id !== enterprise.id)) {
64
+ if (!user || (organization && user.organization_id !== organization.id)) {
64
65
  return {
65
66
  success: false,
66
- message: 'User not found in Enterprise.',
67
+ message: 'User not found in organization.',
67
68
  };
68
69
  }
69
70
 
70
71
  // 🔹 Step 3: Verify org status
71
- const userOrgData = await this.enterpriseRepository.findById(
72
- user.enterprise_id,
72
+ const userOrgData = await this.organizationRepository.findOrganizationById(
73
+ user.organization_id,
74
+ );
75
+
76
+ const resolveStatus = await this.listMasterService.getResolvedListCode(
77
+ STATUS_ACTIVE,
78
+ user?.organization_id || 0,
73
79
  );
74
80
 
75
81
  if (
76
- user.status != StatusConstant.ACTIVE ||
77
- userOrgData?.status != StatusConstant.ACTIVE
82
+ user.status != resolveStatus.id ||
83
+ userOrgData?.status != resolveStatus.id
78
84
  ) {
79
85
  return {
80
86
  success: false,
81
87
  message:
82
- 'Your account or Enterprise is inactive. Please contact admin.',
88
+ 'Your account or organization is inactive. Please contact admin.',
83
89
  };
84
90
  }
85
91
 
@@ -101,23 +107,20 @@ export class LoginService {
101
107
  }
102
108
 
103
109
  // 🔹 Step 5: App access check
104
- let app_id = user.last_app_access_id;
110
+ let appcode = user.last_app_access;
105
111
 
106
- if (!user.last_app_access_id) {
107
- await this.userService.setDefaultLastAccess(user.id, app_id);
112
+ if (!user.last_app_access || user.last_app_access == '') {
113
+ await this.userService.setDefaultLastAccess(user.id, appcode);
108
114
  }
109
115
 
110
116
  const whereCondition: any = { user_id: user.id };
111
117
 
112
- if (app_id) {
113
- whereCondition.app_id = app_id;
118
+ if (appcode && appcode !== '') {
119
+ whereCondition.appcode = appcode;
114
120
  }
115
121
 
116
122
  const roleMappings = await this.userRoleMappingRepository.find({
117
123
  where: whereCondition,
118
- relations: {
119
- app: true
120
- }
121
124
  });
122
125
 
123
126
  if (!roleMappings.length) {
@@ -134,29 +137,33 @@ export class LoginService {
134
137
  user.id,
135
138
  defaultAccess.level_type,
136
139
  defaultAccess.level_id,
137
- defaultAccess.app_id,
140
+ defaultAccess.appcode,
138
141
  );
139
142
 
140
143
  const token = await this.userSessionService.createSession(
141
144
  user,
142
- defaultAccess.app_id,
145
+ defaultAccess.appcode,
143
146
  defaultAccess,
144
- defaultAccess.appcode
145
147
  );
146
148
 
147
149
  // 🔹 Step 7: Update first login + invitation status
150
+ const resolvedInvitationStatus =
151
+ await this.listMasterService.getResolvedListCode(
152
+ INVITATION_STATUS_ACCEPTED,
153
+ user?.organization_id || 0,
154
+ );
148
155
 
149
156
  if (user.is_firstlogin === 1) {
150
- user.invitation_status = INVITATION_STATUS_ACCEPTED;
157
+ user.invitation_status = resolvedInvitationStatus.id;
151
158
  user.is_firstlogin = 0;
152
159
  const { password, ...userWithoutPassword } = user;
153
- await this.userService.updateUser(user.id, userWithoutPassword, user);
160
+ await this.userService.updateEntity(userWithoutPassword, user);
154
161
  }
155
162
 
156
163
  // 🔹 Step 8: Return response
157
164
 
158
- const org = await this.enterpriseRepository.findById(
159
- user.enterprise_id,
165
+ const org = await this.organizationRepository.findOrganizationById(
166
+ user.organization_id,
160
167
  );
161
168
  let slug: string;
162
169
  if (org) {
@@ -164,24 +171,23 @@ export class LoginService {
164
171
  } else {
165
172
  return {
166
173
  success: false,
167
- message: 'Enterprise not found for the user.',
174
+ message: 'Organization not found for the user.',
168
175
  };
169
176
  }
170
177
 
171
178
  return {
172
179
  success: true,
173
180
  accessToken: token,
174
- app_id: defaultAccess.app_id,
181
+ appcode: defaultAccess.appcode,
175
182
  level_type: defaultAccess.level_type,
176
183
  level_id: defaultAccess.level_id,
177
184
  slug: slug,
178
- appcode: defaultAccess.appcode
179
185
  };
180
186
  }
181
187
 
182
188
  async formLogin(body: any): Promise<any> {
183
189
  if (body) {
184
- const { entity_id } = body;
190
+ const { entity_type, entity_id } = body;
185
191
 
186
192
  const leadRepo = this.reflectionHelper.getRepoService('CRMLead');
187
193
  const entityData = await leadRepo.findOne({
@@ -191,12 +197,12 @@ export class LoginService {
191
197
  if (entityData) {
192
198
  const level_id = entityData.level_id;
193
199
  const level_type = entityData.level_type;
194
- const enterprise_id = entityData.enterprise_id;
200
+ const organization_id = entityData.organization_id;
195
201
 
196
202
  const token = this.jwtAuthService.generateJwt({
197
203
  level_id: level_id,
198
204
  level_type: level_type,
199
- enterprise_id: enterprise_id,
205
+ organization_id: organization_id,
200
206
  });
201
207
 
202
208
  return {
@@ -210,7 +216,7 @@ export class LoginService {
210
216
  private async getDefaultAccess(
211
217
  user: any,
212
218
  roleMappings: any[],
213
- ): Promise<{ level_type: string; level_id: string; app_id: number; appcode?:string }> {
219
+ ): Promise<{ level_type: string; level_id: string; appcode: string }> {
214
220
  const orgAccess = roleMappings.find((r) => r.level_type === 'ORG');
215
221
  const brnAccesses = roleMappings.filter((r) => r.level_type === 'BRN');
216
222
  const schAccesses = roleMappings.filter((r) => r.level_type === 'SCH');
@@ -218,7 +224,7 @@ export class LoginService {
218
224
  let validURM;
219
225
 
220
226
  validURM = roleMappings.some(
221
- (r) => r.level_type == 'ORG' && r.level_id == user.enterprise_id,
227
+ (r) => r.level_type == 'ORG' && r.level_id == user.organization_id,
222
228
  );
223
229
 
224
230
  if (!validURM) {
@@ -233,8 +239,7 @@ export class LoginService {
233
239
  return {
234
240
  level_type: user.last_level_type,
235
241
  level_id: user.last_level_id,
236
- app_id: user.last_app_access_id,
237
- appcode: user.last_app.code
242
+ appcode: user.last_app_access,
238
243
  };
239
244
  }
240
245
 
@@ -242,8 +247,7 @@ export class LoginService {
242
247
  return {
243
248
  level_type: 'ORG',
244
249
  level_id: orgAccess.level_id,
245
- app_id: orgAccess.app_id,
246
- appcode: orgAccess.app.code
250
+ appcode: orgAccess.appcode,
247
251
  };
248
252
  }
249
253
 
@@ -265,7 +269,7 @@ export class LoginService {
265
269
  return {
266
270
  level_type: 'SCH',
267
271
  level_id: rows.id,
268
- app_id: brnAccesses[0].app_id,
272
+ appcode: brnAccesses[0].appcode,
269
273
  };
270
274
  } else {
271
275
  throw new BadRequestException(
@@ -278,7 +282,7 @@ export class LoginService {
278
282
  return {
279
283
  level_type: 'SCH',
280
284
  level_id: schAccesses[0].level_id,
281
- app_id: schAccesses[0].app_id,
285
+ appcode: schAccesses[0].appcode,
282
286
  };
283
287
  }
284
288
 
@@ -1,68 +1,69 @@
1
- import { Injectable } from '@nestjs/common';
1
+ import { BadRequestException, Inject, Injectable } from '@nestjs/common';
2
+ import { EntityServiceImpl } from '../../meta/service/entity-service-impl.service';
3
+ import { BaseEntity } from '../../meta/entity/base-entity.entity';
2
4
  import { UserData } from '../entity/user.entity';
3
5
  import { Role } from '../entity/role.entity';
4
- import { STATUS_INACTIVE } from 'src/constant/global.constant';
6
+ import { ENTITYTYPE_ROLE, STATUS_INACTIVE } from 'src/constant/global.constant';
5
7
  import { RoleRepository } from '../repository/role.repository';
6
- import { Repository } from 'typeorm';
8
+ import { EntityManager, Repository } from 'typeorm';
7
9
  import { InjectRepository } from '@nestjs/typeorm';
8
10
  import { ModuleAccess } from '../../module/entity/module-access.entity';
11
+ import { ServiceResult } from 'src/dtos/response';
12
+ import { ListMasterService } from 'src/module/listmaster/service/list-master.service';
13
+ import { UserRoleMappingRepository } from '../repository/user-role-mapping.repository';
9
14
  import { UserRoleMapping } from '../entity/user-role-mapping.entity';
10
- import { plainToInstance } from 'class-transformer';
11
- import { StatusConstant } from '../../../constant/status.constant';
12
15
 
13
16
  @Injectable()
14
- export class RoleService {
17
+ export class RoleService extends EntityServiceImpl {
15
18
  constructor(
16
19
  private readonly roleRepository: RoleRepository,
20
+ private readonly entityManager: EntityManager,
17
21
  @InjectRepository(ModuleAccess)
18
22
  private readonly moduleAccessRepo: Repository<ModuleAccess>,
23
+ @Inject('ListMasterService')
24
+ private readonly listMasterService: ListMasterService,
19
25
  @InjectRepository(UserRoleMapping)
20
26
  private readonly userRoleMappingRepo: Repository<UserRoleMapping>,
21
27
  ) {
28
+ super();
22
29
  }
23
30
 
24
- async createRole(
25
- role: Role,
26
- loggedInUser: any,
27
- ) {
31
+ async createEntity(
32
+ entityData: BaseEntity,
33
+ loggedInUser: UserData,
34
+ ): Promise<ServiceResult<BaseEntity>> {
35
+ const role = entityData as Role;
28
36
 
29
37
  // if level_type and level_id are not provided, use loggedInUser's values
30
- role.level_type = role.level_type || loggedInUser.level_type;
31
- role.level_id = role.level_id || loggedInUser.level_id;
32
- role.created_by = loggedInUser.id;
33
- role.enterprise_id = loggedInUser.enterprise_id;
34
- role.app_id = role.app_id || loggedInUser.app_id;
38
+ role.level_type = entityData.level_type || loggedInUser.level_type;
39
+ role.level_id = entityData.level_id || loggedInUser.level_id;
40
+ role.appcode = entityData.appcode || loggedInUser.appcode;
35
41
 
36
42
  if (
37
43
  await this.roleRepository.isRoleNameWithLevelExists(role.name, {
38
- enterprise_id: loggedInUser.enterprise_id,
39
- level_type: role.level_type || loggedInUser?.level_type,
44
+ organization_id: loggedInUser?.organization_id || undefined,
45
+ level_type: entityData.level_type || loggedInUser?.level_type,
40
46
  level_id:
41
- parseInt(role.level_id) ||
47
+ parseInt(entityData.level_id) ||
42
48
  parseInt(loggedInUser?.level_id || '', 10),
43
49
  })
44
50
  ) {
45
51
  return { success: false, error: 'Role name already exists.' };
46
52
  }
47
53
 
48
- if(!role.code) {
49
- const maxId = await this.roleRepository.findMaxIdRecord();
50
- if(maxId && maxId.id) {
51
- role.code = `ROL${maxId.id + 1}`;
52
- } else {
53
- role.code = `ROL1`;
54
- }
55
- }
56
-
57
54
  const sourceRole = role.copy_from_role_id
58
- ? await this.roleRepository.findById(role.copy_from_role_id)
55
+ ? await this.getEntityData(
56
+ ENTITYTYPE_ROLE,
57
+ role.copy_from_role_id,
58
+ loggedInUser,
59
+ )
59
60
  : null;
60
61
 
61
62
  if (role.copy_from_role_id && !sourceRole) {
62
63
  return { success: false, error: 'Source role not found.' };
63
64
  }
64
- role.status = StatusConstant.ACTIVE;
65
- const savedRole = await this.roleRepository.saveRole(role);
65
+
66
+ const savedRole = await super.createEntity(role, loggedInUser);
66
67
  if (sourceRole) {
67
68
  const sourcePermissions = await this.moduleAccessRepo.find({
68
69
  where: { role_code: sourceRole.code },
@@ -71,11 +72,11 @@ export class RoleService {
71
72
  const clonedPermissions = sourcePermissions.map((perm) =>
72
73
  this.moduleAccessRepo.create({
73
74
  role_code: savedRole.code,
75
+ module_code: perm.module_code,
74
76
  action_type: perm.action_type,
75
77
  access_flag: perm.access_flag,
76
78
  level_type: perm.level_type,
77
79
  appcode: perm.appcode,
78
- module_id: perm.module_id
79
80
  }),
80
81
  );
81
82
 
@@ -84,31 +85,40 @@ export class RoleService {
84
85
  return { success: true, data: savedRole };
85
86
  }
86
87
 
87
- async updateRole(
88
- id: number,
89
- role: Role,
88
+ async updateEntity(
89
+ entityData: BaseEntity,
90
90
  loggedInUser: UserData,
91
- ) {
92
- if (!role.name) {
91
+ ): Promise<ServiceResult<BaseEntity>> {
92
+ if (!entityData.name) {
93
93
  return { success: false, error: 'Role name is required' };
94
94
  }
95
+ const role = entityData as Role;
95
96
 
96
- if (role.status == STATUS_INACTIVE) {
97
+ const resolveStatus = await this.listMasterService.getResolvedListCode(
98
+ STATUS_INACTIVE,
99
+ loggedInUser?.organization_id || 0,
100
+ );
101
+
102
+ if (entityData.status == resolveStatus.id) {
97
103
  //get role by id
98
- const existingRole = await this.roleRepository.findById(id);
104
+ const existingRole = await this.getEntityData(
105
+ ENTITYTYPE_ROLE,
106
+ entityData.id,
107
+ loggedInUser,
108
+ );
99
109
 
100
110
  if (!existingRole) {
101
111
  return { success: false, error: 'Role not found' };
102
112
  }
103
113
 
104
114
  const associatedUsers = await this.userRoleMappingRepo
105
- .createQueryBuilder('map')
106
- .innerJoin('sso_user', 'usr', 'map.user_id = usr.id')
107
- .where('usr.status::text = :status', { status: StatusConstant.INACTIVE })
108
- .andWhere('map.role_id::text = :roleId', {
115
+ .createQueryBuilder("map")
116
+ .innerJoin("sso_user", "usr", "map.user_id = usr.id")
117
+ .where("usr.status::text = :status", { status: String(resolveStatus.id) })
118
+ .andWhere("map.role_id::text = :roleId", {
109
119
  roleId: String(existingRole?.id),
110
120
  })
111
- .select('map') // same as SELECT map.*
121
+ .select("map") // same as SELECT map.*
112
122
  .getRawMany();
113
123
 
114
124
  if (associatedUsers.length > 0) {
@@ -127,9 +137,9 @@ export class RoleService {
127
137
  }
128
138
 
129
139
  if (
130
- await this.roleRepository.isRoleNameExists(role.name, {
131
- excludeRoleId: role.id,
132
- enterprise_id: loggedInUser?.enterprise_id,
140
+ await this.roleRepository.isRoleNameExists(entityData.name, {
141
+ excludeRoleId: entityData.id,
142
+ organization_id: loggedInUser?.organization_id,
133
143
  })
134
144
  ) {
135
145
  return {
@@ -139,13 +149,14 @@ export class RoleService {
139
149
  }
140
150
 
141
151
  const { copy_from_role_id, ...persistableData } = role;
142
-
143
- const entity = plainToInstance(Role, persistableData);
144
- const updatedRole = await this.roleRepository.updateRole(id, entity);
152
+ const updatedRole = await super.updateEntity(persistableData, loggedInUser);
145
153
 
146
154
  if (role.copy_from_role_id) {
147
-
148
- const sourceRole = await this.roleRepository.findById(role.copy_from_role_id);
155
+ const sourceRole = await this.getEntityData(
156
+ ENTITYTYPE_ROLE,
157
+ role.copy_from_role_id,
158
+ loggedInUser,
159
+ );
149
160
 
150
161
  if (!sourceRole) {
151
162
  return {
@@ -163,7 +174,7 @@ export class RoleService {
163
174
  const clonedPermissions = sourcePermissions.map((perm) =>
164
175
  this.moduleAccessRepo.create({
165
176
  role_code: role.code,
166
- module_id: perm.module_id,
177
+ module_code: perm.module_code,
167
178
  action_type: perm.action_type,
168
179
  access_flag: perm.access_flag,
169
180
  appcode: perm.appcode,
@@ -183,16 +194,4 @@ export class RoleService {
183
194
  }): Promise<Role[] | null> {
184
195
  return await this.roleRepository.find(data);
185
196
  }
186
-
187
- async findByCode(code: string) {
188
- return await this.roleRepository.findByCode(code);
189
- }
190
-
191
- async findById(id: number) {
192
- return await this.roleRepository.findById(id);
193
- }
194
-
195
- async find(options: any): Promise<Role[]> {
196
- return await this.roleRepository.findRoles(options);
197
- }
198
197
  }
@@ -7,7 +7,7 @@ import { UserRoleMapping } from '../entity/user-role-mapping.entity';
7
7
  export class UserRoleMappingService {
8
8
  constructor(
9
9
  private readonly userRoleMappingRepository: UserRoleMappingRepository,
10
- ) { }
10
+ ) {}
11
11
 
12
12
  async assignUserRole(userRoleMapping: UserRoleMapping) {
13
13
  const existing = await this.userRoleMappingRepository.findByUserIdAndRoleId(
@@ -95,26 +95,4 @@ export class UserRoleMappingService {
95
95
  levelId,
96
96
  );
97
97
  }
98
-
99
- async find(options: any): Promise<UserRoleMapping[]> {
100
- return await this.userRoleMappingRepository.find(options);
101
- }
102
-
103
- async create(data: any, loggedInUser: any) {
104
- // Assuming data maps to UserRoleMapping or needs transformation
105
- // Based on usage in controller: this.roleMappingService.createEntity(data.userRoleMappingData, data.loggedInUserData)
106
-
107
- // If data is already a UserRoleMapping object or similar
108
- // We might need to adjust this based on actual DTO structure, but for now passing it through or saving
109
-
110
- // If it's a direct save:
111
- // return await this.userRoleMappingRepository.save(data);
112
-
113
- // However, assignUserRole seems to be the main method for creating/assigning.
114
- // Let's use assignUserRole if data matches, or save if it's a raw entity.
115
- // The controller passes `data.userRoleMappingData`.
116
-
117
- // Let's assume it's a UserRoleMapping compatible object.
118
- return await this.assignUserRole(data);
119
- }
120
98
  }