@things-factory/setting-base 8.0.0-beta.9 → 8.0.2

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.
@@ -0,0 +1,48 @@
1
+ import { ObjectType, Field, InputType, Int, ID, registerEnumType } from 'type-graphql'
2
+
3
+ import { Setting } from './setting'
4
+
5
+ @InputType()
6
+ export class NewSetting {
7
+ @Field()
8
+ name: string
9
+
10
+ @Field({ nullable: true })
11
+ description?: string
12
+
13
+ @Field()
14
+ category: string
15
+
16
+ @Field({ nullable: true })
17
+ value?: string
18
+ }
19
+
20
+ @InputType()
21
+ export class SettingPatch {
22
+ @Field(type => ID, { nullable: true })
23
+ id?: string
24
+
25
+ @Field({ nullable: true })
26
+ name?: string
27
+
28
+ @Field({ nullable: true })
29
+ description?: string
30
+
31
+ @Field({ nullable: true })
32
+ category?: string
33
+
34
+ @Field({ nullable: true })
35
+ value?: string
36
+
37
+ @Field({ nullable: true })
38
+ cuFlag: string
39
+ }
40
+
41
+ @ObjectType()
42
+ export class SettingList {
43
+ @Field(type => [Setting])
44
+ items: Setting[]
45
+
46
+ @Field(type => Int)
47
+ total: number
48
+ }
@@ -0,0 +1,86 @@
1
+ import {
2
+ CreateDateColumn,
3
+ UpdateDateColumn,
4
+ Entity,
5
+ Index,
6
+ Column,
7
+ RelationId,
8
+ ManyToOne,
9
+ PrimaryGeneratedColumn
10
+ } from 'typeorm'
11
+ import { ObjectType, Field, Int, ID, registerEnumType } from 'type-graphql'
12
+
13
+ import { Domain } from '@things-factory/shell'
14
+ import { User } from '@things-factory/auth-base'
15
+
16
+ export interface SettingCategory {
17
+ name: string
18
+ propType: string
19
+ }
20
+
21
+ var SettingCategories: { [name: string]: SettingCategory } = {}
22
+
23
+ @Entity()
24
+ @Index('ix_setting_0', (setting: Setting) => [setting.domain, setting.name], { unique: true })
25
+ @Index('ix_setting_1', (setting: Setting) => [setting.domain, setting.category])
26
+ @ObjectType({ description: 'Entity for Setting' })
27
+ export class Setting {
28
+ static registerSettingCategory(settingType: SettingCategory) {
29
+ SettingCategories[settingType.name] = settingType
30
+ }
31
+
32
+ static getSettingCategory(name: string) {
33
+ return SettingCategories[name]
34
+ }
35
+
36
+ @PrimaryGeneratedColumn('uuid')
37
+ @Field(type => ID)
38
+ readonly id: string
39
+
40
+ @ManyToOne(type => Domain)
41
+ @Field(type => Domain)
42
+ domain?: Domain
43
+
44
+ @RelationId((setting: Setting) => setting.domain)
45
+ domainId?: string
46
+
47
+ @Column()
48
+ @Field()
49
+ name: string
50
+
51
+ @Column({
52
+ nullable: true
53
+ })
54
+ @Field({ nullable: true })
55
+ description?: string
56
+
57
+ @Column()
58
+ @Field()
59
+ category: string
60
+
61
+ @Column({ nullable: true })
62
+ @Field({ nullable: true })
63
+ value?: string
64
+
65
+ @CreateDateColumn()
66
+ @Field({ nullable: true })
67
+ createdAt?: Date
68
+
69
+ @UpdateDateColumn()
70
+ @Field({ nullable: true })
71
+ updatedAt?: Date
72
+
73
+ @ManyToOne(type => User, { nullable: true })
74
+ @Field(type => User, { nullable: true })
75
+ creator?: User
76
+
77
+ @RelationId((setting: Setting) => setting.creator)
78
+ creatorId?: string
79
+
80
+ @ManyToOne(type => User, { nullable: true })
81
+ @Field(type => User, { nullable: true })
82
+ updater?: User
83
+
84
+ @RelationId((setting: Setting) => setting.updater)
85
+ updaterId?: string
86
+ }