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