app.winesky.collectionItem
Schema Diff
+25 -0
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 9 non-breaking changes.
Breaking Changes (2)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.collectionItem#strongRef", src: "app.winesky.collectionItem#strongRef", tgt: "app.winesky.collectionItem#strongRef.cid", kind: "prop", name: Some("cid") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.collectionItem#strongRef", src: "app.winesky.collectionItem#strongRef", tgt: "app.winesky.collectionItem#strongRef.atUri", kind: "prop", name: Some("atUri") }
Non-Breaking Changes (9)
- AddedVertex AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef.atUri" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef.cid" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.collectionItem:body.imageSet" }
- AddedVertex AddedVertex { vertex_id: "app.winesky.collectionItem:body.review" }
- AddedEdge AddedEdge { src: "app.winesky.collectionItem:body", tgt: "app.winesky.collectionItem:body.imageSet", kind: "prop", name: Some("imageSet") }
- AddedEdge AddedEdge { src: "app.winesky.collectionItem:body", tgt: "app.winesky.collectionItem:body.review", kind: "prop", name: Some("review") }
- AddedEdge AddedEdge { src: "app.winesky.collectionItem:body.imageSet", tgt: "app.winesky.collectionItem#strongRef", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.winesky.collectionItem:body.review", tgt: "app.winesky.collectionItem#strongRef", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef" }AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef.atUri" }AddedVertex { vertex_id: "app.winesky.collectionItem#strongRef.cid" }AddedVertex { vertex_id: "app.winesky.collectionItem:body.imageSet" }AddedVertex { vertex_id: "app.winesky.collectionItem:body.review" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.collectionItem#strongRef", src: "app.winesky.collectionItem#strongRef", tgt: "app.winesky.collectionItem#strongRef.cid", kind: "prop", name: Some("cid") }
- Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.collectionItem#strongRef", src: "app.winesky.collectionItem#strongRef", tgt: "app.winesky.collectionItem#strongRef.atUri", kind: "prop", name: Some("atUri") }
- Non-breaking: AddedEdge { src: "app.winesky.collectionItem:body", tgt: "app.winesky.collectionItem:body.imageSet", kind: "prop", name: Some("imageSet") }
- Non-breaking: AddedEdge { src: "app.winesky.collectionItem:body", tgt: "app.winesky.collectionItem:body.review", kind: "prop", name: Some("review") }
- Non-breaking: AddedEdge { src: "app.winesky.collectionItem:body.imageSet", tgt: "app.winesky.collectionItem#strongRef", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.winesky.collectionItem:body.review", tgt: "app.winesky.collectionItem#strongRef", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"drink": {
5
5
"properties": {
6
6
"alcoholContent": {
7
7
"maximum": 1000,
8
8
"minimum": 0,
9
9
"type": "integer"
10
10
},
11
11
"appellation": {
12
12
"maxLength": 256,
13
13
"type": "string"
14
14
},
15
15
"category": {
16
16
"enum": [
17
17
"BEER",
18
18
"WINE",
19
19
"SPIRIT",
20
20
"CIDER",
21
21
"RTD",
22
22
"SAKE",
23
23
"OTHER"
24
24
],
25
25
"maxLength": 64,
26
26
"type": "string"
27
27
},
28
28
"country": {
29
29
"maxLength": 128,
30
30
"type": "string"
31
31
},
32
32
"drinkId": {
33
33
"maxLength": 64,
34
34
"type": "string"
35
35
},
36
36
"name": {
37
37
"maxLength": 512,
38
38
"type": "string"
39
39
},
40
40
"producer": {
41
41
"maxLength": 512,
42
42
"type": "string"
43
43
},
44
44
"region": {
45
45
"maxLength": 256,
46
46
"type": "string"
47
47
},
48
48
"varietals": {
49
49
"items": {
50
50
"maxLength": 128,
51
51
"type": "string"
52
52
},
53
53
"type": "array"
54
54
},
55
55
"vintage": {
56
56
"type": "integer"
57
57
}
58
58
},
59
59
"required": [
60
60
"category",
61
61
"country",
62
62
"producer",
63
63
"name"
64
64
],
65
65
"type": "object"
66
66
},
67
67
"main": {
68
68
"description": "A drink in a user's Collection. References the parent Collection via at-uri and embeds the drink description.",
69
69
"key": "tid",
70
70
"record": {
71
71
"properties": {
72
72
"collection": {
73
73
"format": "at-uri",
74
74
"type": "string"
75
75
},
76
76
"createdAt": {
77
77
"format": "datetime",
78
78
"type": "string"
79
79
},
80
80
"drink": {
81
81
"ref": "#drink",
82
82
"type": "ref"
83
+
},
84
+
"imageSet": {
85
+
"ref": "#strongRef",
86
+
"type": "ref"
87
+
},
88
+
"review": {
89
+
"ref": "#strongRef",
90
+
"type": "ref"
83
91
}
84
92
},
85
93
"required": [
86
94
"collection",
87
95
"drink",
88
96
"createdAt"
89
97
],
90
98
"type": "object"
91
99
},
92
100
"type": "record"
101
+
},
102
+
"strongRef": {
103
+
"properties": {
104
+
"atUri": {
105
+
"format": "at-uri",
106
+
"type": "string"
107
+
},
108
+
"cid": {
109
+
"format": "cid",
110
+
"type": "string"
111
+
}
112
+
},
113
+
"required": [
114
+
"cid",
115
+
"atUri"
116
+
],
117
+
"type": "object"
93
118
}
94
119
},
95
120
"id": "app.winesky.collectionItem",
96
121
"lexicon": 1
97
122
}