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.
Files changed (194) hide show
  1. package/.claude/settings.local.json +26 -0
  2. package/.idea/250218_nodejs_core.iml +9 -0
  3. package/.idea/codeStyles/Project.xml +59 -0
  4. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  5. package/.idea/copilot.data.migration.agent.xml +6 -0
  6. package/.idea/copilot.data.migration.ask.xml +6 -0
  7. package/.idea/copilot.data.migration.ask2agent.xml +6 -0
  8. package/.idea/copilot.data.migration.edit.xml +6 -0
  9. package/.idea/inspectionProfiles/Project_Default.xml +6 -0
  10. package/.idea/misc.xml +6 -0
  11. package/.idea/modules.xml +8 -0
  12. package/.idea/prettier.xml +6 -0
  13. package/.idea/vcs.xml +6 -0
  14. package/dist/app.module.js +3 -1
  15. package/dist/app.module.js.map +1 -1
  16. package/dist/constant/db-data-type.constant.d.ts +30 -0
  17. package/dist/constant/db-data-type.constant.js +59 -0
  18. package/dist/constant/db-data-type.constant.js.map +1 -0
  19. package/dist/constant/storage-type.constant.d.ts +4 -0
  20. package/dist/constant/storage-type.constant.js +9 -0
  21. package/dist/constant/storage-type.constant.js.map +1 -0
  22. package/dist/module/dashboard/controller/dashboard.controller.d.ts +1 -0
  23. package/dist/module/dashboard/service/dashboard.service.d.ts +1 -0
  24. package/dist/module/eav/controller/eav.controller.d.ts +21 -0
  25. package/dist/module/eav/controller/eav.controller.js +127 -0
  26. package/dist/module/eav/controller/eav.controller.js.map +1 -0
  27. package/dist/module/eav/dto/eav-operation.dto.d.ts +20 -0
  28. package/dist/module/eav/dto/eav-operation.dto.js +75 -0
  29. package/dist/module/eav/dto/eav-operation.dto.js.map +1 -0
  30. package/dist/module/eav/eav.module.d.ts +2 -0
  31. package/dist/module/eav/eav.module.js +84 -0
  32. package/dist/module/eav/eav.module.js.map +1 -0
  33. package/dist/module/eav/entity/eav-boolean.entity.d.ts +9 -0
  34. package/dist/module/eav/entity/eav-boolean.entity.js +48 -0
  35. package/dist/module/eav/entity/eav-boolean.entity.js.map +1 -0
  36. package/dist/module/eav/entity/eav-date.entity.d.ts +9 -0
  37. package/dist/module/eav/entity/eav-date.entity.js +48 -0
  38. package/dist/module/eav/entity/eav-date.entity.js.map +1 -0
  39. package/dist/module/eav/entity/eav-decimal.entity.d.ts +9 -0
  40. package/dist/module/eav/entity/eav-decimal.entity.js +48 -0
  41. package/dist/module/eav/entity/eav-decimal.entity.js.map +1 -0
  42. package/dist/module/eav/entity/eav-int.entity.d.ts +9 -0
  43. package/dist/module/eav/entity/eav-int.entity.js +48 -0
  44. package/dist/module/eav/entity/eav-int.entity.js.map +1 -0
  45. package/dist/module/eav/entity/eav-json.entity.d.ts +9 -0
  46. package/dist/module/eav/entity/eav-json.entity.js +48 -0
  47. package/dist/module/eav/entity/eav-json.entity.js.map +1 -0
  48. package/dist/module/eav/entity/eav-text.entity.d.ts +9 -0
  49. package/dist/module/eav/entity/eav-text.entity.js +48 -0
  50. package/dist/module/eav/entity/eav-text.entity.js.map +1 -0
  51. package/dist/module/eav/entity/eav-time.entity.d.ts +9 -0
  52. package/dist/module/eav/entity/eav-time.entity.js +48 -0
  53. package/dist/module/eav/entity/eav-time.entity.js.map +1 -0
  54. package/dist/module/eav/entity/eav-timestamp.entity.d.ts +9 -0
  55. package/dist/module/eav/entity/eav-timestamp.entity.js +48 -0
  56. package/dist/module/eav/entity/eav-timestamp.entity.js.map +1 -0
  57. package/dist/module/eav/entity/eav-varchar.entity.d.ts +9 -0
  58. package/dist/module/eav/entity/eav-varchar.entity.js +48 -0
  59. package/dist/module/eav/entity/eav-varchar.entity.js.map +1 -0
  60. package/dist/module/eav/interface/eav-strategy.interface.d.ts +8 -0
  61. package/dist/module/eav/interface/eav-strategy.interface.js +3 -0
  62. package/dist/module/eav/interface/eav-strategy.interface.js.map +1 -0
  63. package/dist/module/eav/repository/eav-boolean.repository.d.ts +13 -0
  64. package/dist/module/eav/repository/eav-boolean.repository.js +57 -0
  65. package/dist/module/eav/repository/eav-boolean.repository.js.map +1 -0
  66. package/dist/module/eav/repository/eav-date.repository.d.ts +13 -0
  67. package/dist/module/eav/repository/eav-date.repository.js +57 -0
  68. package/dist/module/eav/repository/eav-date.repository.js.map +1 -0
  69. package/dist/module/eav/repository/eav-decimal.repository.d.ts +13 -0
  70. package/dist/module/eav/repository/eav-decimal.repository.js +57 -0
  71. package/dist/module/eav/repository/eav-decimal.repository.js.map +1 -0
  72. package/dist/module/eav/repository/eav-int.repository.d.ts +13 -0
  73. package/dist/module/eav/repository/eav-int.repository.js +57 -0
  74. package/dist/module/eav/repository/eav-int.repository.js.map +1 -0
  75. package/dist/module/eav/repository/eav-json.repository.d.ts +13 -0
  76. package/dist/module/eav/repository/eav-json.repository.js +57 -0
  77. package/dist/module/eav/repository/eav-json.repository.js.map +1 -0
  78. package/dist/module/eav/repository/eav-text.repository.d.ts +13 -0
  79. package/dist/module/eav/repository/eav-text.repository.js +57 -0
  80. package/dist/module/eav/repository/eav-text.repository.js.map +1 -0
  81. package/dist/module/eav/repository/eav-time.repository.d.ts +13 -0
  82. package/dist/module/eav/repository/eav-time.repository.js +57 -0
  83. package/dist/module/eav/repository/eav-time.repository.js.map +1 -0
  84. package/dist/module/eav/repository/eav-timestamp.repository.d.ts +13 -0
  85. package/dist/module/eav/repository/eav-timestamp.repository.js +57 -0
  86. package/dist/module/eav/repository/eav-timestamp.repository.js.map +1 -0
  87. package/dist/module/eav/repository/eav-varchar.repository.d.ts +13 -0
  88. package/dist/module/eav/repository/eav-varchar.repository.js +57 -0
  89. package/dist/module/eav/repository/eav-varchar.repository.js.map +1 -0
  90. package/dist/module/eav/service/eav-boolean.service.d.ts +12 -0
  91. package/dist/module/eav/service/eav-boolean.service.js +59 -0
  92. package/dist/module/eav/service/eav-boolean.service.js.map +1 -0
  93. package/dist/module/eav/service/eav-date.service.d.ts +12 -0
  94. package/dist/module/eav/service/eav-date.service.js +59 -0
  95. package/dist/module/eav/service/eav-date.service.js.map +1 -0
  96. package/dist/module/eav/service/eav-decimal.service.d.ts +12 -0
  97. package/dist/module/eav/service/eav-decimal.service.js +59 -0
  98. package/dist/module/eav/service/eav-decimal.service.js.map +1 -0
  99. package/dist/module/eav/service/eav-factory.service.d.ts +26 -0
  100. package/dist/module/eav/service/eav-factory.service.js +81 -0
  101. package/dist/module/eav/service/eav-factory.service.js.map +1 -0
  102. package/dist/module/eav/service/eav-int.service.d.ts +12 -0
  103. package/dist/module/eav/service/eav-int.service.js +59 -0
  104. package/dist/module/eav/service/eav-int.service.js.map +1 -0
  105. package/dist/module/eav/service/eav-json.service.d.ts +12 -0
  106. package/dist/module/eav/service/eav-json.service.js +59 -0
  107. package/dist/module/eav/service/eav-json.service.js.map +1 -0
  108. package/dist/module/eav/service/eav-text.service.d.ts +12 -0
  109. package/dist/module/eav/service/eav-text.service.js +59 -0
  110. package/dist/module/eav/service/eav-text.service.js.map +1 -0
  111. package/dist/module/eav/service/eav-time.service.d.ts +12 -0
  112. package/dist/module/eav/service/eav-time.service.js +59 -0
  113. package/dist/module/eav/service/eav-time.service.js.map +1 -0
  114. package/dist/module/eav/service/eav-timestamp.service.d.ts +12 -0
  115. package/dist/module/eav/service/eav-timestamp.service.js +59 -0
  116. package/dist/module/eav/service/eav-timestamp.service.js.map +1 -0
  117. package/dist/module/eav/service/eav-varchar.service.d.ts +12 -0
  118. package/dist/module/eav/service/eav-varchar.service.js +59 -0
  119. package/dist/module/eav/service/eav-varchar.service.js.map +1 -0
  120. package/dist/module/eav/service/eav.service.d.ts +14 -0
  121. package/dist/module/eav/service/eav.service.js +65 -0
  122. package/dist/module/eav/service/eav.service.js.map +1 -0
  123. package/dist/module/listmaster/service/list-master-item.service.js +9 -41
  124. package/dist/module/listmaster/service/list-master-item.service.js.map +1 -1
  125. package/dist/module/meta/controller/entity.controller.js +1 -4
  126. package/dist/module/meta/controller/entity.controller.js.map +1 -1
  127. package/dist/module/meta/entity/base-entity.entity.d.ts +1 -0
  128. package/dist/module/meta/entity/base-entity.entity.js +4 -0
  129. package/dist/module/meta/entity/base-entity.entity.js.map +1 -1
  130. package/dist/module/meta/entity/dynamic.entity.d.ts +3 -0
  131. package/dist/module/meta/entity/dynamic.entity.js +8 -0
  132. package/dist/module/meta/entity/dynamic.entity.js.map +1 -0
  133. package/dist/module/meta/entity/entity-master.entity.d.ts +4 -8
  134. package/dist/module/meta/entity/entity-master.entity.js +13 -57
  135. package/dist/module/meta/entity/entity-master.entity.js.map +1 -1
  136. package/dist/module/meta/service/entity-master.service.d.ts +8 -2
  137. package/dist/module/meta/service/entity-master.service.js +82 -2
  138. package/dist/module/meta/service/entity-master.service.js.map +1 -1
  139. package/dist/module/meta/service/media-data.service.d.ts +0 -1
  140. package/dist/module/meta/service/media-data.service.js +0 -119
  141. package/dist/module/meta/service/media-data.service.js.map +1 -1
  142. package/dist/module/workflow/controller/activity-log.controller.d.ts +1 -0
  143. package/dist/module/workflow/repository/activity-log.repository.d.ts +1 -0
  144. package/dist/module/workflow/repository/stage-group.repository.d.ts +1 -0
  145. package/dist/module/workflow/repository/stage.repository.d.ts +1 -0
  146. package/dist/module/workflow/service/activity-log.service.d.ts +1 -0
  147. package/dist/module/workflow-automation/service/workflow-automation.service.d.ts +1 -0
  148. package/dist/tsconfig.build.tsbuildinfo +1 -1
  149. package/package.json +1 -1
  150. package/server.log +850 -0
  151. package/src/app.module.ts +3 -1
  152. package/src/constant/db-data-type.constant.ts +81 -0
  153. package/src/constant/storage-type.constant.ts +4 -0
  154. package/src/module/eav/EAV_USAGE_GUIDE.md +351 -0
  155. package/src/module/eav/controller/eav.controller.ts +119 -0
  156. package/src/module/eav/dto/eav-operation.dto.ts +62 -0
  157. package/src/module/eav/eav.module.ts +80 -0
  158. package/src/module/eav/entity/eav-boolean.entity.ts +26 -0
  159. package/src/module/eav/entity/eav-date.entity.ts +25 -0
  160. package/src/module/eav/entity/eav-decimal.entity.ts +25 -0
  161. package/src/module/eav/entity/eav-int.entity.ts +25 -0
  162. package/src/module/eav/entity/eav-json.entity.ts +25 -0
  163. package/src/module/eav/entity/eav-text.entity.ts +25 -0
  164. package/src/module/eav/entity/eav-time.entity.ts +25 -0
  165. package/src/module/eav/entity/eav-timestamp.entity.ts +25 -0
  166. package/src/module/eav/entity/eav-varchar.entity.ts +25 -0
  167. package/src/module/eav/interface/eav-strategy.interface.ts +32 -0
  168. package/src/module/eav/repository/eav-boolean.repository.ts +67 -0
  169. package/src/module/eav/repository/eav-date.repository.ts +67 -0
  170. package/src/module/eav/repository/eav-decimal.repository.ts +67 -0
  171. package/src/module/eav/repository/eav-int.repository.ts +67 -0
  172. package/src/module/eav/repository/eav-json.repository.ts +67 -0
  173. package/src/module/eav/repository/eav-text.repository.ts +67 -0
  174. package/src/module/eav/repository/eav-time.repository.ts +67 -0
  175. package/src/module/eav/repository/eav-timestamp.repository.ts +67 -0
  176. package/src/module/eav/repository/eav-varchar.repository.ts +67 -0
  177. package/src/module/eav/service/eav-boolean.service.ts +64 -0
  178. package/src/module/eav/service/eav-date.service.ts +64 -0
  179. package/src/module/eav/service/eav-decimal.service.ts +64 -0
  180. package/src/module/eav/service/eav-factory.service.ts +93 -0
  181. package/src/module/eav/service/eav-int.service.ts +64 -0
  182. package/src/module/eav/service/eav-json.service.ts +64 -0
  183. package/src/module/eav/service/eav-text.service.ts +64 -0
  184. package/src/module/eav/service/eav-time.service.ts +64 -0
  185. package/src/module/eav/service/eav-timestamp.service.ts +64 -0
  186. package/src/module/eav/service/eav-varchar.service.ts +65 -0
  187. package/src/module/eav/service/eav.service.ts +116 -0
  188. package/src/module/listmaster/service/list-master-item.service.ts +11 -61
  189. package/src/module/meta/controller/entity.controller.ts +2 -10
  190. package/src/module/meta/entity/base-entity.entity.ts +3 -0
  191. package/src/module/meta/entity/dynamic.entity.ts +4 -0
  192. package/src/module/meta/entity/entity-master.entity.ts +16 -52
  193. package/src/module/meta/service/entity-master.service.ts +135 -6
  194. 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
+ }