rez_core 5.0.145 → 5.0.150

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 (62) hide show
  1. package/dist/config/bull.config.js +4 -4
  2. package/dist/config/bull.config.js.map +1 -1
  3. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.d.ts +6 -0
  4. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js +32 -0
  5. package/dist/migrations/1732612800000-AddEntityJsonGinIndex.js.map +1 -0
  6. package/dist/module/entity_json/entity_json.module.js +1 -1
  7. package/dist/module/entity_json/entity_json.module.js.map +1 -1
  8. package/dist/module/entity_json/service/entity_json.service.js +1 -1
  9. package/dist/module/entity_json/service/entity_json.service.js.map +1 -1
  10. package/dist/module/filter/controller/filter.controller.d.ts +12 -0
  11. package/dist/module/filter/controller/filter.controller.js +1 -1
  12. package/dist/module/filter/controller/filter.controller.js.map +1 -1
  13. package/dist/module/filter/filter.module.js +9 -2
  14. package/dist/module/filter/filter.module.js.map +1 -1
  15. package/dist/module/filter/repository/saved-filter.repository.d.ts +5 -1
  16. package/dist/module/filter/repository/saved-filter.repository.js +5 -1
  17. package/dist/module/filter/repository/saved-filter.repository.js.map +1 -1
  18. package/dist/module/filter/service/filter.service.d.ts +37 -1
  19. package/dist/module/filter/service/filter.service.js +30 -2
  20. package/dist/module/filter/service/filter.service.js.map +1 -1
  21. package/dist/module/filter/service/flatjson-filter.service.d.ts +30 -0
  22. package/dist/module/filter/service/flatjson-filter.service.js +615 -0
  23. package/dist/module/filter/service/flatjson-filter.service.js.map +1 -0
  24. package/dist/module/integration/service/wrapper.service.d.ts +1 -3
  25. package/dist/module/integration/service/wrapper.service.js +2 -24
  26. package/dist/module/integration/service/wrapper.service.js.map +1 -1
  27. package/dist/module/linked_attributes/controller/linked_attributes.controller.d.ts +19 -0
  28. package/dist/module/linked_attributes/controller/linked_attributes.controller.js +77 -0
  29. package/dist/module/linked_attributes/controller/linked_attributes.controller.js.map +1 -1
  30. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.d.ts +13 -0
  31. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js +64 -0
  32. package/dist/module/linked_attributes/dto/create-linked-attribute-smart.dto.js.map +1 -0
  33. package/dist/module/linked_attributes/linked_attributes.module.js +8 -1
  34. package/dist/module/linked_attributes/linked_attributes.module.js.map +1 -1
  35. package/dist/module/linked_attributes/service/linked_attributes.service.d.ts +41 -1
  36. package/dist/module/linked_attributes/service/linked_attributes.service.js +266 -2
  37. package/dist/module/linked_attributes/service/linked_attributes.service.js.map +1 -1
  38. package/dist/module/meta/dto/entity-table.dto.d.ts +4 -1
  39. package/dist/module/meta/dto/entity-table.dto.js.map +1 -1
  40. package/dist/module/meta/service/media-data.service.js +5 -18
  41. package/dist/module/meta/service/media-data.service.js.map +1 -1
  42. package/dist/tsconfig.build.tsbuildinfo +1 -1
  43. package/package.json +1 -1
  44. package/src/config/bull.config.ts +4 -4
  45. package/src/migrations/1732612800000-AddEntityJsonGinIndex.ts +41 -0
  46. package/src/module/entity_json/docs/FlatJson_Filterin_System.md +2804 -0
  47. package/src/module/entity_json/entity_json.module.ts +1 -1
  48. package/src/module/entity_json/service/entity_json.service.ts +1 -1
  49. package/src/module/filter/controller/filter.controller.ts +1 -3
  50. package/src/module/filter/filter.module.ts +9 -2
  51. package/src/module/filter/repository/saved-filter.repository.ts +5 -8
  52. package/src/module/filter/service/filter.service.ts +49 -0
  53. package/src/module/filter/service/flatjson-filter.service.ts +888 -0
  54. package/src/module/filter/test/flatjson-filter.service.spec.ts +415 -0
  55. package/src/module/integration/service/wrapper.service.ts +0 -37
  56. package/src/module/linked_attributes/controller/linked_attributes.controller.ts +86 -0
  57. package/src/module/linked_attributes/dto/create-linked-attribute-smart.dto.ts +54 -0
  58. package/src/module/linked_attributes/linked_attributes.module.ts +9 -2
  59. package/src/module/linked_attributes/service/linked_attributes.service.ts +548 -3
  60. package/src/module/linked_attributes/test/linked-attributes.service.spec.ts +244 -0
  61. package/src/module/meta/dto/entity-table.dto.ts +1 -2
  62. package/src/module/meta/service/media-data.service.ts +9 -27
@@ -13,6 +13,6 @@ import { EntityJSONRepository } from './service/entityJson.repository';
13
13
  imports: [EntityModule, TypeOrmModule.forFeature([EntityJson]),FilterModule,UtilsModule],
14
14
  controllers: [EntityJSONController],
15
15
  providers: [EntityJSONService,EntityJSONRepository],
16
- exports: [],
16
+ exports: [EntityJSONService],
17
17
  })
18
18
  export class EntityJSONModule {}
@@ -107,7 +107,7 @@ export class EntityJSONService extends EntityServiceImpl {
107
107
  dropdown.push(...mainAttributes.map(a => ({ label: a.name, value: a.flat_json_key })));
108
108
  dropdown.push(...relatedAttributes.map(a => ({ label: a.name, value: a.flat_json_key })));
109
109
  if (linkedAttributes.length > 0) {
110
- dropdown.push(...linkedAttributes.map(a => ({ label: a.name, value: a.attribute_key })));
110
+ dropdown.push(...linkedAttributes.map(a => ({ label: a.name, value: a.target_attribute_key })));
111
111
  }
112
112
 
113
113
  return dropdown;
@@ -48,9 +48,7 @@ export class FilterController {
48
48
  sortby,
49
49
  } = body;
50
50
 
51
-
52
-
53
- return this.filterService.applyFilterWrapper({
51
+ return this.filterService.applyFilterWithRouting({
54
52
  entity_type,
55
53
  quickFilter,
56
54
  savedFilterCode,
@@ -9,11 +9,16 @@ import { FilterService } from './service/filter.service';
9
9
  import { FilterController } from './controller/filter.controller';
10
10
  import { FilterEvaluatorService } from './service/filter-evaluator.service';
11
11
  import { SavedFilterDetailRepository } from './repository/saved.filter-detail.repository';
12
+ import { FlatjsonFilterService } from './service/flatjson-filter.service';
13
+ import { ConfigModule } from '@nestjs/config';
14
+ import { UtilsModule } from 'src/utils/utils.module';
12
15
 
13
16
  @Module({
14
17
  imports: [
15
18
  TypeOrmModule.forFeature([SavedFilterDetail, SavedFilterMaster]),
16
- forwardRef(() => EntityModule)
19
+ forwardRef(() => EntityModule),
20
+ ConfigModule,
21
+ UtilsModule,
17
22
  ],
18
23
  controllers: [FilterController],
19
24
  providers: [
@@ -21,13 +26,15 @@ import { SavedFilterDetailRepository } from './repository/saved.filter-detail.re
21
26
  SavedFilterRepositoryService,
22
27
  FilterService,
23
28
  FilterEvaluatorService,
24
- SavedFilterDetailRepository
29
+ SavedFilterDetailRepository,
30
+ FlatjsonFilterService,
25
31
  ],
26
32
  exports: [
27
33
  'SavedFilterService',
28
34
  SavedFilterRepositoryService,
29
35
  FilterService,
30
36
  FilterEvaluatorService,
37
+ FlatjsonFilterService,
31
38
  ],
32
39
  })
33
40
  export class FilterModule {}
@@ -127,14 +127,11 @@ export class SavedFilterRepositoryService {
127
127
  },
128
128
  });
129
129
 
130
- return filters;
131
-
132
- // return filters.map((filter) => ({
133
- // label: filter.name,
134
- // value: filter.id,
135
- // code: filter.code,
136
-
137
- // }));
130
+ return filters.map((filter) => ({
131
+ label: filter.name,
132
+ value: filter.id,
133
+ code: filter.code,
134
+ }));
138
135
  }
139
136
 
140
137
  async getFilterById(id: number): Promise<
@@ -11,6 +11,7 @@ import { LoggingService } from 'src/utils/service/loggingUtil.service';
11
11
  import { ConfigService } from '@nestjs/config';
12
12
  import { ReflectionHelper } from '../../../utils/service/reflection-helper.service';
13
13
  import { EntityManager } from 'typeorm';
14
+ import { FlatjsonFilterService } from './flatjson-filter.service';
14
15
 
15
16
  @Injectable()
16
17
  export class FilterService {
@@ -26,6 +27,7 @@ export class FilterService {
26
27
  @Inject() protected readonly loggingService: LoggingService,
27
28
  private readonly configService: ConfigService,
28
29
  private readonly reflectionHelper: ReflectionHelper,
30
+ private readonly flatjsonFilterService: FlatjsonFilterService,
29
31
  ) {}
30
32
 
31
33
  private async gettab_value_counts(
@@ -96,6 +98,53 @@ export class FilterService {
96
98
  ];
97
99
  }
98
100
 
101
+ /**
102
+ * Route to flatjson or traditional filtering based on configuration
103
+ */
104
+ async applyFilterWithRouting(dto: FilterRequestDto) {
105
+ // Check if flatjson filtering is enabled via config or query param
106
+ const useFlatjson =
107
+ this.configService.get<string>('ENABLE_FLATJSON_FILTER') === 'true' ||
108
+ dto.queryParams?.use_flatjson === 'true';
109
+
110
+ if (useFlatjson) {
111
+ await this.loggingService.log(
112
+ 'info',
113
+ 'FilterService',
114
+ 'applyFilterWithRouting',
115
+ `Using FLATJSON filtering for ${dto.entity_type}`,
116
+ );
117
+
118
+ // Use new flatjson filtering service
119
+ const result = await this.flatjsonFilterService.applyFlatjsonFilter(dto);
120
+
121
+ // Transform to match existing response format
122
+ return {
123
+ success: true,
124
+ data: {
125
+ entity_tabs: result.tabCounts || [],
126
+ entity_list: result.data,
127
+ pagination: {
128
+ total: result.total,
129
+ page: result.page,
130
+ size: result.size,
131
+ totalPages: result.totalPages,
132
+ },
133
+ },
134
+ };
135
+ } else {
136
+ await this.loggingService.log(
137
+ 'info',
138
+ 'FilterService',
139
+ 'applyFilterWithRouting',
140
+ `Using TRADITIONAL filtering for ${dto.entity_type}`,
141
+ );
142
+
143
+ // Use traditional filtering
144
+ return this.applyFilterWrapper(dto);
145
+ }
146
+ }
147
+
99
148
  async applyFilterWrapper(dto: FilterRequestDto) {
100
149
  const {
101
150
  entity_type,