buzz.bookhive.hiveBook
Schema Diff
+7 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "buzz.bookhive.hiveBook:body.genres" }
- AddedVertex AddedVertex { vertex_id: "buzz.bookhive.hiveBook:body.genres:items" }
- AddedEdge AddedEdge { src: "buzz.bookhive.hiveBook:body", tgt: "buzz.bookhive.hiveBook:body.genres", kind: "prop", name: Some("genres") }
- AddedEdge AddedEdge { src: "buzz.bookhive.hiveBook:body.genres", tgt: "buzz.bookhive.hiveBook:body.genres:items", kind: "items", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "buzz.bookhive.hiveBook:body.genres" }AddedVertex { vertex_id: "buzz.bookhive.hiveBook:body.genres:items" }
Additional Notes
- Non-breaking: AddedEdge { src: "buzz.bookhive.hiveBook:body", tgt: "buzz.bookhive.hiveBook:body.genres", kind: "prop", name: Some("genres") }
- Non-breaking: AddedEdge { src: "buzz.bookhive.hiveBook:body.genres", tgt: "buzz.bookhive.hiveBook:body.genres:items", kind: "items", name: None }
1
1
{
2
2
"id": "buzz.bookhive.hiveBook",
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
"id",
11
11
"title",
12
12
"authors",
13
13
"createdAt",
14
14
"updatedAt",
15
15
"thumbnail"
16
16
],
17
17
"properties": {
18
18
"id": {
19
19
"type": "string",
20
20
"description": "The book's hive id, used to correlate user's books with the hive"
21
21
},
22
22
"cover": {
23
23
"type": "string",
24
24
"description": "URL to full-size cover image"
25
25
},
26
26
"title": {
27
27
"type": "string",
28
28
"maxLength": 512,
29
29
"minLength": 1,
30
30
"description": "The title of the book"
31
31
},
32
+
"genres": {
33
+
"type": "array",
34
+
"items": {
35
+
"type": "string"
36
+
},
37
+
"description": "Book genres"
38
+
},
32
39
"rating": {
33
40
"type": "integer",
34
41
"maximum": 1000,
35
42
"minimum": 0,
36
43
"description": "Average rating (0-1000)"
37
44
},
38
45
"source": {
39
46
"type": "string",
40
47
"description": "The source service name (e.g. Goodreads)"
41
48
},
42
49
"authors": {
43
50
"type": "string",
44
51
"maxLength": 512,
45
52
"minLength": 1,
46
53
"description": "The authors of the book (tab separated)"
47
54
},
48
55
"sourceId": {
49
56
"type": "string",
50
57
"description": "ID of the book in the source service"
51
58
},
52
59
"createdAt": {
53
60
"type": "string",
54
61
"format": "datetime"
55
62
},
56
63
"sourceUrl": {
57
64
"type": "string",
58
65
"description": "URL to the book on the source service"
59
66
},
60
67
"thumbnail": {
61
68
"type": "string",
62
69
"description": "URL to thumbnail image"
63
70
},
64
71
"updatedAt": {
65
72
"type": "string",
66
73
"format": "datetime"
67
74
},
68
75
"description": {
69
76
"type": "string",
70
77
"maxLength": 5000,
71
78
"description": "Book description/summary"
72
79
},
73
80
"identifiers": {
74
81
"ref": "buzz.bookhive.defs#bookIdentifiers",
75
82
"type": "ref",
76
83
"description": "External identifiers for the book"
77
84
},
78
85
"ratingsCount": {
79
86
"type": "integer",
80
87
"description": "Number of ratings"
81
88
}
82
89
}
83
90
},
84
91
"description": "A book within the hive"
85
92
}
86
93
},
87
94
"$type": "com.atproto.lexicon.schema",
88
95
"lexicon": 1
89
96
}