app.winesky.collectionItem

winesky.app

Schema Diff

+25 -0

From

CID
bafyreigwi4t3nhv...
Indexed At
2026-05-22 12:30 UTC
View this version

To

CID
bafyreicg34o2kd2...
Indexed At
2026-08-10 15:45 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@