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