rez_core 6.5.75 → 6.5.76
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.
- package/.claude/settings.local.json +26 -0
- package/.idea/250218_nodejs_core.iml +9 -0
- package/.idea/codeStyles/Project.xml +59 -0
- package/.idea/codeStyles/codeStyleConfig.xml +5 -0
- package/.idea/copilot.data.migration.agent.xml +6 -0
- package/.idea/copilot.data.migration.ask.xml +6 -0
- package/.idea/copilot.data.migration.ask2agent.xml +6 -0
- package/.idea/copilot.data.migration.edit.xml +6 -0
- package/.idea/inspectionProfiles/Project_Default.xml +6 -0
- package/.idea/misc.xml +6 -0
- package/.idea/modules.xml +8 -0
- package/.idea/prettier.xml +6 -0
- package/.idea/vcs.xml +6 -0
- package/dist/app.module.js +3 -1
- package/dist/app.module.js.map +1 -1
- package/dist/constant/db-data-type.constant.d.ts +30 -0
- package/dist/constant/db-data-type.constant.js +59 -0
- package/dist/constant/db-data-type.constant.js.map +1 -0
- package/dist/constant/storage-type.constant.d.ts +4 -0
- package/dist/constant/storage-type.constant.js +9 -0
- package/dist/constant/storage-type.constant.js.map +1 -0
- package/dist/module/dashboard/controller/dashboard.controller.d.ts +1 -0
- package/dist/module/dashboard/service/dashboard.service.d.ts +1 -0
- package/dist/module/eav/controller/eav.controller.d.ts +21 -0
- package/dist/module/eav/controller/eav.controller.js +127 -0
- package/dist/module/eav/controller/eav.controller.js.map +1 -0
- package/dist/module/eav/dto/eav-operation.dto.d.ts +20 -0
- package/dist/module/eav/dto/eav-operation.dto.js +75 -0
- package/dist/module/eav/dto/eav-operation.dto.js.map +1 -0
- package/dist/module/eav/eav.module.d.ts +2 -0
- package/dist/module/eav/eav.module.js +84 -0
- package/dist/module/eav/eav.module.js.map +1 -0
- package/dist/module/eav/entity/eav-boolean.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-boolean.entity.js +48 -0
- package/dist/module/eav/entity/eav-boolean.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-date.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-date.entity.js +48 -0
- package/dist/module/eav/entity/eav-date.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-decimal.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-decimal.entity.js +48 -0
- package/dist/module/eav/entity/eav-decimal.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-int.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-int.entity.js +48 -0
- package/dist/module/eav/entity/eav-int.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-json.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-json.entity.js +48 -0
- package/dist/module/eav/entity/eav-json.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-text.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-text.entity.js +48 -0
- package/dist/module/eav/entity/eav-text.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-time.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-time.entity.js +48 -0
- package/dist/module/eav/entity/eav-time.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-timestamp.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-timestamp.entity.js +48 -0
- package/dist/module/eav/entity/eav-timestamp.entity.js.map +1 -0
- package/dist/module/eav/entity/eav-varchar.entity.d.ts +9 -0
- package/dist/module/eav/entity/eav-varchar.entity.js +48 -0
- package/dist/module/eav/entity/eav-varchar.entity.js.map +1 -0
- package/dist/module/eav/interface/eav-strategy.interface.d.ts +8 -0
- package/dist/module/eav/interface/eav-strategy.interface.js +3 -0
- package/dist/module/eav/interface/eav-strategy.interface.js.map +1 -0
- package/dist/module/eav/repository/eav-boolean.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-boolean.repository.js +57 -0
- package/dist/module/eav/repository/eav-boolean.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-date.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-date.repository.js +57 -0
- package/dist/module/eav/repository/eav-date.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-decimal.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-decimal.repository.js +57 -0
- package/dist/module/eav/repository/eav-decimal.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-int.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-int.repository.js +57 -0
- package/dist/module/eav/repository/eav-int.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-json.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-json.repository.js +57 -0
- package/dist/module/eav/repository/eav-json.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-text.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-text.repository.js +57 -0
- package/dist/module/eav/repository/eav-text.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-time.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-time.repository.js +57 -0
- package/dist/module/eav/repository/eav-time.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-timestamp.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-timestamp.repository.js +57 -0
- package/dist/module/eav/repository/eav-timestamp.repository.js.map +1 -0
- package/dist/module/eav/repository/eav-varchar.repository.d.ts +13 -0
- package/dist/module/eav/repository/eav-varchar.repository.js +57 -0
- package/dist/module/eav/repository/eav-varchar.repository.js.map +1 -0
- package/dist/module/eav/service/eav-boolean.service.d.ts +12 -0
- package/dist/module/eav/service/eav-boolean.service.js +59 -0
- package/dist/module/eav/service/eav-boolean.service.js.map +1 -0
- package/dist/module/eav/service/eav-date.service.d.ts +12 -0
- package/dist/module/eav/service/eav-date.service.js +59 -0
- package/dist/module/eav/service/eav-date.service.js.map +1 -0
- package/dist/module/eav/service/eav-decimal.service.d.ts +12 -0
- package/dist/module/eav/service/eav-decimal.service.js +59 -0
- package/dist/module/eav/service/eav-decimal.service.js.map +1 -0
- package/dist/module/eav/service/eav-factory.service.d.ts +26 -0
- package/dist/module/eav/service/eav-factory.service.js +81 -0
- package/dist/module/eav/service/eav-factory.service.js.map +1 -0
- package/dist/module/eav/service/eav-int.service.d.ts +12 -0
- package/dist/module/eav/service/eav-int.service.js +59 -0
- package/dist/module/eav/service/eav-int.service.js.map +1 -0
- package/dist/module/eav/service/eav-json.service.d.ts +12 -0
- package/dist/module/eav/service/eav-json.service.js +59 -0
- package/dist/module/eav/service/eav-json.service.js.map +1 -0
- package/dist/module/eav/service/eav-text.service.d.ts +12 -0
- package/dist/module/eav/service/eav-text.service.js +59 -0
- package/dist/module/eav/service/eav-text.service.js.map +1 -0
- package/dist/module/eav/service/eav-time.service.d.ts +12 -0
- package/dist/module/eav/service/eav-time.service.js +59 -0
- package/dist/module/eav/service/eav-time.service.js.map +1 -0
- package/dist/module/eav/service/eav-timestamp.service.d.ts +12 -0
- package/dist/module/eav/service/eav-timestamp.service.js +59 -0
- package/dist/module/eav/service/eav-timestamp.service.js.map +1 -0
- package/dist/module/eav/service/eav-varchar.service.d.ts +12 -0
- package/dist/module/eav/service/eav-varchar.service.js +59 -0
- package/dist/module/eav/service/eav-varchar.service.js.map +1 -0
- package/dist/module/eav/service/eav.service.d.ts +14 -0
- package/dist/module/eav/service/eav.service.js +65 -0
- package/dist/module/eav/service/eav.service.js.map +1 -0
- package/dist/module/listmaster/service/list-master-item.service.js +9 -41
- package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
- package/dist/module/meta/controller/entity.controller.js +1 -4
- package/dist/module/meta/controller/entity.controller.js.map +1 -1
- package/dist/module/meta/entity/base-entity.entity.d.ts +1 -0
- package/dist/module/meta/entity/base-entity.entity.js +4 -0
- package/dist/module/meta/entity/base-entity.entity.js.map +1 -1
- package/dist/module/meta/entity/dynamic.entity.d.ts +3 -0
- package/dist/module/meta/entity/dynamic.entity.js +8 -0
- package/dist/module/meta/entity/dynamic.entity.js.map +1 -0
- package/dist/module/meta/entity/entity-master.entity.d.ts +4 -8
- package/dist/module/meta/entity/entity-master.entity.js +13 -57
- package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
- package/dist/module/meta/service/entity-master.service.d.ts +8 -2
- package/dist/module/meta/service/entity-master.service.js +82 -2
- package/dist/module/meta/service/entity-master.service.js.map +1 -1
- package/dist/module/meta/service/media-data.service.d.ts +0 -1
- package/dist/module/meta/service/media-data.service.js +0 -119
- package/dist/module/meta/service/media-data.service.js.map +1 -1
- package/dist/module/workflow/controller/activity-log.controller.d.ts +1 -0
- package/dist/module/workflow/repository/activity-log.repository.d.ts +1 -0
- package/dist/module/workflow/repository/stage-group.repository.d.ts +1 -0
- package/dist/module/workflow/repository/stage.repository.d.ts +1 -0
- package/dist/module/workflow/service/activity-log.service.d.ts +1 -0
- package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/server.log +850 -0
- package/src/app.module.ts +3 -1
- package/src/constant/db-data-type.constant.ts +81 -0
- package/src/constant/storage-type.constant.ts +4 -0
- package/src/module/eav/EAV_USAGE_GUIDE.md +351 -0
- package/src/module/eav/controller/eav.controller.ts +119 -0
- package/src/module/eav/dto/eav-operation.dto.ts +62 -0
- package/src/module/eav/eav.module.ts +80 -0
- package/src/module/eav/entity/eav-boolean.entity.ts +26 -0
- package/src/module/eav/entity/eav-date.entity.ts +25 -0
- package/src/module/eav/entity/eav-decimal.entity.ts +25 -0
- package/src/module/eav/entity/eav-int.entity.ts +25 -0
- package/src/module/eav/entity/eav-json.entity.ts +25 -0
- package/src/module/eav/entity/eav-text.entity.ts +25 -0
- package/src/module/eav/entity/eav-time.entity.ts +25 -0
- package/src/module/eav/entity/eav-timestamp.entity.ts +25 -0
- package/src/module/eav/entity/eav-varchar.entity.ts +25 -0
- package/src/module/eav/interface/eav-strategy.interface.ts +32 -0
- package/src/module/eav/repository/eav-boolean.repository.ts +67 -0
- package/src/module/eav/repository/eav-date.repository.ts +67 -0
- package/src/module/eav/repository/eav-decimal.repository.ts +67 -0
- package/src/module/eav/repository/eav-int.repository.ts +67 -0
- package/src/module/eav/repository/eav-json.repository.ts +67 -0
- package/src/module/eav/repository/eav-text.repository.ts +67 -0
- package/src/module/eav/repository/eav-time.repository.ts +67 -0
- package/src/module/eav/repository/eav-timestamp.repository.ts +67 -0
- package/src/module/eav/repository/eav-varchar.repository.ts +67 -0
- package/src/module/eav/service/eav-boolean.service.ts +64 -0
- package/src/module/eav/service/eav-date.service.ts +64 -0
- package/src/module/eav/service/eav-decimal.service.ts +64 -0
- package/src/module/eav/service/eav-factory.service.ts +93 -0
- package/src/module/eav/service/eav-int.service.ts +64 -0
- package/src/module/eav/service/eav-json.service.ts +64 -0
- package/src/module/eav/service/eav-text.service.ts +64 -0
- package/src/module/eav/service/eav-time.service.ts +64 -0
- package/src/module/eav/service/eav-timestamp.service.ts +64 -0
- package/src/module/eav/service/eav-varchar.service.ts +65 -0
- package/src/module/eav/service/eav.service.ts +116 -0
- package/src/module/listmaster/service/list-master-item.service.ts +11 -61
- package/src/module/meta/controller/entity.controller.ts +2 -10
- package/src/module/meta/entity/base-entity.entity.ts +3 -0
- package/src/module/meta/entity/dynamic.entity.ts +4 -0
- package/src/module/meta/entity/entity-master.entity.ts +16 -52
- package/src/module/meta/service/entity-master.service.ts +135 -6
- package/src/module/meta/service/media-data.service.ts +0 -206
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { Module } from '@nestjs/common';
|
|
2
|
+
import { TypeOrmModule } from '@nestjs/typeorm';
|
|
3
|
+
import { EAVDate } from './entity/eav-date.entity';
|
|
4
|
+
import { EAVBoolean } from './entity/eav-boolean.entity';
|
|
5
|
+
import { EAVTime } from './entity/eav-time.entity';
|
|
6
|
+
import { EAVTimeStamp } from './entity/eav-timestamp.entity';
|
|
7
|
+
import { EAVInt } from './entity/eav-int.entity';
|
|
8
|
+
import { EAVDecimal } from './entity/eav-decimal.entity';
|
|
9
|
+
import { EAVJson } from './entity/eav-json.entity';
|
|
10
|
+
import { EAVText } from './entity/eav-text.entity';
|
|
11
|
+
import { EAVVarchar } from './entity/eav-varchar.entity';
|
|
12
|
+
|
|
13
|
+
// Services
|
|
14
|
+
import { EAVService } from './service/eav.service';
|
|
15
|
+
import { EAVFactoryService } from './service/eav-factory.service';
|
|
16
|
+
import { EAVVarcharService } from './service/eav-varchar.service';
|
|
17
|
+
import { EAVIntService } from './service/eav-int.service';
|
|
18
|
+
import { EAVBooleanService } from './service/eav-boolean.service';
|
|
19
|
+
import { EAVDecimalService } from './service/eav-decimal.service';
|
|
20
|
+
import { EAVTextService } from './service/eav-text.service';
|
|
21
|
+
import { EAVJsonService } from './service/eav-json.service';
|
|
22
|
+
import { EAVDateService } from './service/eav-date.service';
|
|
23
|
+
import { EAVTimeService } from './service/eav-time.service';
|
|
24
|
+
import { EAVTimestampService } from './service/eav-timestamp.service';
|
|
25
|
+
|
|
26
|
+
// Repositories
|
|
27
|
+
import { EAVVarcharRepository } from './repository/eav-varchar.repository';
|
|
28
|
+
import { EAVIntRepository } from './repository/eav-int.repository';
|
|
29
|
+
import { EAVBooleanRepository } from './repository/eav-boolean.repository';
|
|
30
|
+
import { EAVDecimalRepository } from './repository/eav-decimal.repository';
|
|
31
|
+
import { EAVTextRepository } from './repository/eav-text.repository';
|
|
32
|
+
import { EAVJsonRepository } from './repository/eav-json.repository';
|
|
33
|
+
import { EAVDateRepository } from './repository/eav-date.repository';
|
|
34
|
+
import { EAVTimeRepository } from './repository/eav-time.repository';
|
|
35
|
+
import { EAVTimestampRepository } from './repository/eav-timestamp.repository';
|
|
36
|
+
|
|
37
|
+
@Module({
|
|
38
|
+
imports: [
|
|
39
|
+
TypeOrmModule.forFeature([
|
|
40
|
+
EAVVarchar,
|
|
41
|
+
EAVInt,
|
|
42
|
+
EAVBoolean,
|
|
43
|
+
EAVDecimal,
|
|
44
|
+
EAVText,
|
|
45
|
+
EAVJson,
|
|
46
|
+
EAVDate,
|
|
47
|
+
EAVTime,
|
|
48
|
+
EAVTimeStamp,
|
|
49
|
+
]),
|
|
50
|
+
],
|
|
51
|
+
providers: [
|
|
52
|
+
// Repositories
|
|
53
|
+
EAVVarcharRepository,
|
|
54
|
+
EAVIntRepository,
|
|
55
|
+
EAVBooleanRepository,
|
|
56
|
+
EAVDecimalRepository,
|
|
57
|
+
EAVTextRepository,
|
|
58
|
+
EAVJsonRepository,
|
|
59
|
+
EAVDateRepository,
|
|
60
|
+
EAVTimeRepository,
|
|
61
|
+
EAVTimestampRepository,
|
|
62
|
+
// Type-specific services
|
|
63
|
+
EAVVarcharService,
|
|
64
|
+
EAVIntService,
|
|
65
|
+
EAVBooleanService,
|
|
66
|
+
EAVDecimalService,
|
|
67
|
+
EAVTextService,
|
|
68
|
+
EAVJsonService,
|
|
69
|
+
EAVDateService,
|
|
70
|
+
EAVTimeService,
|
|
71
|
+
EAVTimestampService,
|
|
72
|
+
// Factory service
|
|
73
|
+
EAVFactoryService,
|
|
74
|
+
// Main orchestrator service
|
|
75
|
+
EAVService,
|
|
76
|
+
],
|
|
77
|
+
exports: [EAVService],
|
|
78
|
+
})
|
|
79
|
+
export class EAVModule {
|
|
80
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({ name: 'frm_eav_boolean' })
|
|
4
|
+
export class EAVBoolean {
|
|
5
|
+
|
|
6
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
7
|
+
id: number;
|
|
8
|
+
|
|
9
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
10
|
+
entity_type: string;
|
|
11
|
+
|
|
12
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
13
|
+
entity_id: string;
|
|
14
|
+
|
|
15
|
+
@UpdateDateColumn()
|
|
16
|
+
modified_date: Date;
|
|
17
|
+
|
|
18
|
+
@Column({ type: 'bigint', nullable: true, name: 'modified_by' })
|
|
19
|
+
modified_by: number;
|
|
20
|
+
|
|
21
|
+
@Column({ type: 'varchar', length: 100 })
|
|
22
|
+
key: string;
|
|
23
|
+
|
|
24
|
+
@Column({ type: 'boolean' })
|
|
25
|
+
value: any;
|
|
26
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_date'})
|
|
4
|
+
export class EAVDate {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'date'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_decimal'})
|
|
4
|
+
export class EAVDecimal {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'decimal'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_int'})
|
|
4
|
+
export class EAVInt {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'int'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_json'})
|
|
4
|
+
export class EAVJson {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'json'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_text'})
|
|
4
|
+
export class EAVText {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'text'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_time'})
|
|
4
|
+
export class EAVTime {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'time'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_timestamp'})
|
|
4
|
+
export class EAVTimeStamp {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'timestamp'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Column, Entity, PrimaryGeneratedColumn, UpdateDateColumn } from 'typeorm';
|
|
2
|
+
|
|
3
|
+
@Entity({name: 'frm_eav_varchar'})
|
|
4
|
+
export class EAVVarchar {
|
|
5
|
+
@PrimaryGeneratedColumn({ type: 'bigint' })
|
|
6
|
+
id: number;
|
|
7
|
+
|
|
8
|
+
@Column({ type: 'varchar', length: 50, name: 'entity_type' })
|
|
9
|
+
entity_type: string;
|
|
10
|
+
|
|
11
|
+
@Column({ type: 'bigint', name: 'entity_id' })
|
|
12
|
+
entity_id: string;
|
|
13
|
+
|
|
14
|
+
@UpdateDateColumn()
|
|
15
|
+
modified_date: Date;
|
|
16
|
+
|
|
17
|
+
@Column({type: 'bigint', nullable: true, name: 'modified_by'})
|
|
18
|
+
modified_by: number;
|
|
19
|
+
|
|
20
|
+
@Column({type: 'varchar', length: 100})
|
|
21
|
+
key: string;
|
|
22
|
+
|
|
23
|
+
@Column({type: 'varchar'})
|
|
24
|
+
value: any;
|
|
25
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { CreateEAVDto, UpdateEAVDto, EAVQueryDto } from '../dto/eav-operation.dto';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Strategy interface for EAV operations
|
|
5
|
+
* Each data type service implements this interface
|
|
6
|
+
*/
|
|
7
|
+
export interface IEAVStrategy {
|
|
8
|
+
/**
|
|
9
|
+
* Create a new EAV record
|
|
10
|
+
*/
|
|
11
|
+
create(dto: CreateEAVDto, modifiedBy?: number): Promise<any>;
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Find a single EAV record by entity_type, entity_id, and key
|
|
15
|
+
*/
|
|
16
|
+
findOne(query: EAVQueryDto): Promise<any>;
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Find all EAV records matching the query
|
|
20
|
+
*/
|
|
21
|
+
findAll(query: Partial<EAVQueryDto>): Promise<any[]>;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Update an existing EAV record
|
|
25
|
+
*/
|
|
26
|
+
update(query: EAVQueryDto, dto: UpdateEAVDto, modifiedBy?: number): Promise<any>;
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Delete an EAV record
|
|
30
|
+
*/
|
|
31
|
+
delete(query: EAVQueryDto): Promise<boolean>;
|
|
32
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DataSource, Repository } from 'typeorm';
|
|
3
|
+
import { EAVBoolean } from '../entity/eav-boolean.entity';
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class EAVBooleanRepository extends Repository<EAVBoolean> {
|
|
7
|
+
constructor(private dataSource: DataSource) {
|
|
8
|
+
super(EAVBoolean, dataSource.createEntityManager());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Find by entity_type, entity_id, and key
|
|
13
|
+
*/
|
|
14
|
+
async findByEntityAndKey(
|
|
15
|
+
entityType: string,
|
|
16
|
+
entityId: string | number,
|
|
17
|
+
key: string,
|
|
18
|
+
): Promise<EAVBoolean | null> {
|
|
19
|
+
return await this.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
entity_type: entityType,
|
|
22
|
+
entity_id: String(entityId),
|
|
23
|
+
key: key,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Find all by partial criteria
|
|
30
|
+
*/
|
|
31
|
+
async findByPartialCriteria(criteria: {
|
|
32
|
+
entity_type?: string;
|
|
33
|
+
entity_id?: string | number;
|
|
34
|
+
key?: string;
|
|
35
|
+
}): Promise<EAVBoolean[]> {
|
|
36
|
+
const where: any = {};
|
|
37
|
+
|
|
38
|
+
if (criteria.entity_type) {
|
|
39
|
+
where.entity_type = criteria.entity_type;
|
|
40
|
+
}
|
|
41
|
+
if (criteria.entity_id) {
|
|
42
|
+
where.entity_id = String(criteria.entity_id);
|
|
43
|
+
}
|
|
44
|
+
if (criteria.key) {
|
|
45
|
+
where.key = criteria.key;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return await this.find({ where });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Delete by entity_type, entity_id, and key
|
|
53
|
+
*/
|
|
54
|
+
async deleteByEntityAndKey(
|
|
55
|
+
entityType: string,
|
|
56
|
+
entityId: string | number,
|
|
57
|
+
key: string,
|
|
58
|
+
): Promise<boolean> {
|
|
59
|
+
const result = await this.delete({
|
|
60
|
+
entity_type: entityType,
|
|
61
|
+
entity_id: String(entityId),
|
|
62
|
+
key: key,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return (result.affected ?? 0) > 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DataSource, Repository } from 'typeorm';
|
|
3
|
+
import { EAVDate } from '../entity/eav-date.entity';
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class EAVDateRepository extends Repository<EAVDate> {
|
|
7
|
+
constructor(private dataSource: DataSource) {
|
|
8
|
+
super(EAVDate, dataSource.createEntityManager());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Find by entity_type, entity_id, and key
|
|
13
|
+
*/
|
|
14
|
+
async findByEntityAndKey(
|
|
15
|
+
entityType: string,
|
|
16
|
+
entityId: string | number,
|
|
17
|
+
key: string,
|
|
18
|
+
): Promise<EAVDate | null> {
|
|
19
|
+
return await this.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
entity_type: entityType,
|
|
22
|
+
entity_id: String(entityId),
|
|
23
|
+
key: key,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Find all by partial criteria
|
|
30
|
+
*/
|
|
31
|
+
async findByPartialCriteria(criteria: {
|
|
32
|
+
entity_type?: string;
|
|
33
|
+
entity_id?: string | number;
|
|
34
|
+
key?: string;
|
|
35
|
+
}): Promise<EAVDate[]> {
|
|
36
|
+
const where: any = {};
|
|
37
|
+
|
|
38
|
+
if (criteria.entity_type) {
|
|
39
|
+
where.entity_type = criteria.entity_type;
|
|
40
|
+
}
|
|
41
|
+
if (criteria.entity_id) {
|
|
42
|
+
where.entity_id = String(criteria.entity_id);
|
|
43
|
+
}
|
|
44
|
+
if (criteria.key) {
|
|
45
|
+
where.key = criteria.key;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return await this.find({ where });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Delete by entity_type, entity_id, and key
|
|
53
|
+
*/
|
|
54
|
+
async deleteByEntityAndKey(
|
|
55
|
+
entityType: string,
|
|
56
|
+
entityId: string | number,
|
|
57
|
+
key: string,
|
|
58
|
+
): Promise<boolean> {
|
|
59
|
+
const result = await this.delete({
|
|
60
|
+
entity_type: entityType,
|
|
61
|
+
entity_id: String(entityId),
|
|
62
|
+
key: key,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return (result.affected ?? 0) > 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DataSource, Repository } from 'typeorm';
|
|
3
|
+
import { EAVDecimal } from '../entity/eav-decimal.entity';
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class EAVDecimalRepository extends Repository<EAVDecimal> {
|
|
7
|
+
constructor(private dataSource: DataSource) {
|
|
8
|
+
super(EAVDecimal, dataSource.createEntityManager());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Find by entity_type, entity_id, and key
|
|
13
|
+
*/
|
|
14
|
+
async findByEntityAndKey(
|
|
15
|
+
entityType: string,
|
|
16
|
+
entityId: string | number,
|
|
17
|
+
key: string,
|
|
18
|
+
): Promise<EAVDecimal | null> {
|
|
19
|
+
return await this.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
entity_type: entityType,
|
|
22
|
+
entity_id: String(entityId),
|
|
23
|
+
key: key,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Find all by partial criteria
|
|
30
|
+
*/
|
|
31
|
+
async findByPartialCriteria(criteria: {
|
|
32
|
+
entity_type?: string;
|
|
33
|
+
entity_id?: string | number;
|
|
34
|
+
key?: string;
|
|
35
|
+
}): Promise<EAVDecimal[]> {
|
|
36
|
+
const where: any = {};
|
|
37
|
+
|
|
38
|
+
if (criteria.entity_type) {
|
|
39
|
+
where.entity_type = criteria.entity_type;
|
|
40
|
+
}
|
|
41
|
+
if (criteria.entity_id) {
|
|
42
|
+
where.entity_id = String(criteria.entity_id);
|
|
43
|
+
}
|
|
44
|
+
if (criteria.key) {
|
|
45
|
+
where.key = criteria.key;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return await this.find({ where });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Delete by entity_type, entity_id, and key
|
|
53
|
+
*/
|
|
54
|
+
async deleteByEntityAndKey(
|
|
55
|
+
entityType: string,
|
|
56
|
+
entityId: string | number,
|
|
57
|
+
key: string,
|
|
58
|
+
): Promise<boolean> {
|
|
59
|
+
const result = await this.delete({
|
|
60
|
+
entity_type: entityType,
|
|
61
|
+
entity_id: String(entityId),
|
|
62
|
+
key: key,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return (result.affected ?? 0) > 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DataSource, Repository } from 'typeorm';
|
|
3
|
+
import { EAVInt } from '../entity/eav-int.entity';
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class EAVIntRepository extends Repository<EAVInt> {
|
|
7
|
+
constructor(private dataSource: DataSource) {
|
|
8
|
+
super(EAVInt, dataSource.createEntityManager());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Find by entity_type, entity_id, and key
|
|
13
|
+
*/
|
|
14
|
+
async findByEntityAndKey(
|
|
15
|
+
entityType: string,
|
|
16
|
+
entityId: string | number,
|
|
17
|
+
key: string,
|
|
18
|
+
): Promise<EAVInt | null> {
|
|
19
|
+
return await this.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
entity_type: entityType,
|
|
22
|
+
entity_id: String(entityId),
|
|
23
|
+
key: key,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Find all by partial criteria
|
|
30
|
+
*/
|
|
31
|
+
async findByPartialCriteria(criteria: {
|
|
32
|
+
entity_type?: string;
|
|
33
|
+
entity_id?: string | number;
|
|
34
|
+
key?: string;
|
|
35
|
+
}): Promise<EAVInt[]> {
|
|
36
|
+
const where: any = {};
|
|
37
|
+
|
|
38
|
+
if (criteria.entity_type) {
|
|
39
|
+
where.entity_type = criteria.entity_type;
|
|
40
|
+
}
|
|
41
|
+
if (criteria.entity_id) {
|
|
42
|
+
where.entity_id = String(criteria.entity_id);
|
|
43
|
+
}
|
|
44
|
+
if (criteria.key) {
|
|
45
|
+
where.key = criteria.key;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return await this.find({ where });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Delete by entity_type, entity_id, and key
|
|
53
|
+
*/
|
|
54
|
+
async deleteByEntityAndKey(
|
|
55
|
+
entityType: string,
|
|
56
|
+
entityId: string | number,
|
|
57
|
+
key: string,
|
|
58
|
+
): Promise<boolean> {
|
|
59
|
+
const result = await this.delete({
|
|
60
|
+
entity_type: entityType,
|
|
61
|
+
entity_id: String(entityId),
|
|
62
|
+
key: key,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return (result.affected ?? 0) > 0;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@nestjs/common';
|
|
2
|
+
import { DataSource, Repository } from 'typeorm';
|
|
3
|
+
import { EAVJson } from '../entity/eav-json.entity';
|
|
4
|
+
|
|
5
|
+
@Injectable()
|
|
6
|
+
export class EAVJsonRepository extends Repository<EAVJson> {
|
|
7
|
+
constructor(private dataSource: DataSource) {
|
|
8
|
+
super(EAVJson, dataSource.createEntityManager());
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Find by entity_type, entity_id, and key
|
|
13
|
+
*/
|
|
14
|
+
async findByEntityAndKey(
|
|
15
|
+
entityType: string,
|
|
16
|
+
entityId: string | number,
|
|
17
|
+
key: string,
|
|
18
|
+
): Promise<EAVJson | null> {
|
|
19
|
+
return await this.findOne({
|
|
20
|
+
where: {
|
|
21
|
+
entity_type: entityType,
|
|
22
|
+
entity_id: String(entityId),
|
|
23
|
+
key: key,
|
|
24
|
+
},
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Find all by partial criteria
|
|
30
|
+
*/
|
|
31
|
+
async findByPartialCriteria(criteria: {
|
|
32
|
+
entity_type?: string;
|
|
33
|
+
entity_id?: string | number;
|
|
34
|
+
key?: string;
|
|
35
|
+
}): Promise<EAVJson[]> {
|
|
36
|
+
const where: any = {};
|
|
37
|
+
|
|
38
|
+
if (criteria.entity_type) {
|
|
39
|
+
where.entity_type = criteria.entity_type;
|
|
40
|
+
}
|
|
41
|
+
if (criteria.entity_id) {
|
|
42
|
+
where.entity_id = String(criteria.entity_id);
|
|
43
|
+
}
|
|
44
|
+
if (criteria.key) {
|
|
45
|
+
where.key = criteria.key;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
return await this.find({ where });
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Delete by entity_type, entity_id, and key
|
|
53
|
+
*/
|
|
54
|
+
async deleteByEntityAndKey(
|
|
55
|
+
entityType: string,
|
|
56
|
+
entityId: string | number,
|
|
57
|
+
key: string,
|
|
58
|
+
): Promise<boolean> {
|
|
59
|
+
const result = await this.delete({
|
|
60
|
+
entity_type: entityType,
|
|
61
|
+
entity_id: String(entityId),
|
|
62
|
+
key: key,
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
return (result.affected ?? 0) > 0;
|
|
66
|
+
}
|
|
67
|
+
}
|