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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{
"blocks": [
{
"id": "dm-customer",
"type": "dataModel",
"props": {
"data": {
"name": "customer",
"properties": [
{
"id": "p1",
"name": "name",
"type": "string",
"array": false,
"optional": false
},
{
"id": "p2",
"name": "companies",
"type": "reference",
"target": "company",
"array": true,
"optional": false
}
]
}
},
"children": []
},
{
"id": "dm-company",
"type": "dataModel",
"props": {
"data": {
"name": "company",
"properties": [
{
"id": "p3",
"name": "id",
"type": "string",
"array": false,
"optional": false
},
{
"id": "p4",
"name": "revenue",
"type": "number",
"array": false,
"optional": false
}
]
}
},
"children": []
},
{
"id": "company-risk",
"type": "match",
"props": {
"data": {
"key": "company.riskLevel",
"arms": [
{
"id": "cr1",
"condition": "company.revenue >= 200000",
"value": "\"low\""
},
{
"id": "cr2",
"condition": "",
"value": "\"high\""
}
]
}
}
},
{
"id": "s1",
"type": "expression",
"props": {
"data": {
"key": "customer.totalRevenue",
"value": "sum(map(customer.companies as c, c.revenue))"
}
}
}
]
}