-
Notifications
You must be signed in to change notification settings - Fork 28
/
Copy pathbrutalist.model.ts
52 lines (43 loc) · 1.13 KB
/
brutalist.model.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
// tslint:disable:max-classes-per-file
import { CollectionProperty, DateProperty, Model, PartitionKey, Property } from '../../src/dynamo-easy'
import { FormId, formIdMapper } from './real-world'
@Model()
export class BrutalistModelLevel4 {
@DateProperty({ name: 'level4_date' })
level4Date: Date
@Property({ name: 'level4_string' })
level4String: string
level4Number: number
@Property({ mapper: formIdMapper })
level4FormId: FormId
@CollectionProperty({ itemMapper: formIdMapper, name: 'level4_set' })
level4Set: Set<FormId>
}
@Model()
export class BrutalistModelLevel3 {
@CollectionProperty({
itemType: BrutalistModelLevel4,
name: 'level3_list',
sorted: true,
})
level3Prop: Set<BrutalistModelLevel4>
}
@Model()
export class BrutalistModelLevel2 {
@CollectionProperty({
itemType: BrutalistModelLevel3,
name: 'level2_list',
})
level2Prop: BrutalistModelLevel3[]
}
@Model()
export class BrutalistModel {
@PartitionKey()
@Property({ mapper: formIdMapper })
id: FormId
@CollectionProperty({
itemType: BrutalistModelLevel2,
name: 'level1_list',
})
level1Prop: BrutalistModelLevel2[]
}