buzz.bookhive.defs

bookhive.buzz

Schema Diff

+22 -0

From

CID
bafyreidwcuncaj2...
Indexed At
2026-02-13 13:46 UTC
View this version

To

CID
bafyreickxvcmsfv...
Indexed At
2026-02-14 11:57 UTC
View this version
1 1
{
2 2
  "id": "buzz.bookhive.defs",
3 3
  "defs": {
4 4
    "owned": {
5 5
      "type": "token",
6 6
      "description": "User owns the book"
7 7
    },
8 8
    "review": {
9 9
      "type": "object",
10 10
      "required": [
11 11
        "review",
12 12
        "createdAt",
13 13
        "did",
14 14
        "handle"
15 15
      ],
16 16
      "properties": {
17 17
        "did": {
18 18
          "type": "string",
19 19
          "description": "The DID of the user who made the review"
20 20
        },
21 21
        "stars": {
22 22
          "type": "integer",
23 23
          "description": "The number of stars given to the book"
24 24
        },
25 25
        "handle": {
26 26
          "type": "string",
27 27
          "description": "The handle of the user who made the review"
28 28
        },
29 29
        "review": {
30 30
          "type": "string",
31 31
          "description": "The review content"
32 32
        },
33 33
        "createdAt": {
34 34
          "type": "string",
35 35
          "format": "datetime",
36 36
          "description": "The date the review was created"
37 37
        }
38 38
      }
39 39
    },
40 40
    "comment": {
41 41
      "type": "object",
42 42
      "required": [
43 43
        "comment",
44 44
        "createdAt",
45 45
        "book",
46 46
        "parent",
47 47
        "did",
48 48
        "handle"
49 49
      ],
50 50
      "properties": {
51 51
        "did": {
52 52
          "type": "string",
53 53
          "description": "The DID of the user who made the comment"
54 54
        },
55 55
        "book": {
56 56
          "ref": "com.atproto.repo.strongRef",
57 57
          "type": "ref"
58 58
        },
59 59
        "handle": {
60 60
          "type": "string",
61 61
          "description": "The handle of the user who made the comment"
62 62
        },
63 63
        "parent": {
64 64
          "ref": "com.atproto.repo.strongRef",
65 65
          "type": "ref"
66 66
        },
67 67
        "comment": {
68 68
          "type": "string",
69 69
          "maxLength": 100000,
70 70
          "description": "The content of the comment.",
71 71
          "maxGraphemes": 10000
72 72
        },
73 73
        "createdAt": {
74 74
          "type": "string",
75 75
          "format": "datetime",
76 76
          "description": "Client-declared timestamp when this comment was originally created."
77 77
        }
78 78
      }
79 79
    },
80 80
    "profile": {
81 81
      "type": "object",
82 82
      "required": [
83 83
        "displayName",
84 84
        "handle",
85 85
        "booksRead",
86 86
        "reviews"
87 87
      ],
88 88
      "properties": {
89 89
        "avatar": {
90 90
          "type": "string"
91 91
        },
92 92
        "handle": {
93 93
          "type": "string"
94 94
        },
95 95
        "reviews": {
96 96
          "type": "integer",
97 97
          "minimum": 0
98 98
        },
99 99
        "booksRead": {
100 100
          "type": "integer",
101 101
          "minimum": 0
102 102
        },
103 103
        "description": {
104 104
          "type": "string"
105 105
        },
106 106
        "displayName": {
107 107
          "type": "string"
108 108
        },
109 109
        "isFollowing": {
110 110
          "type": "boolean",
111 111
          "description": "Whether the authed user is following this profile"
112 112
        }
113 113
      }
114 114
    },
115 115
    "reading": {
116 116
      "type": "token",
117 117
      "description": "User is currently reading the book"
118 118
    },
119 119
    "activity": {
120 120
      "type": "object",
121 121
      "required": [
122 122
        "type",
123 123
        "createdAt",
124 124
        "hiveId",
125 125
        "title",
126 126
        "userDid",
127 127
        "userHandle"
128 128
      ],
129 129
      "properties": {
130 130
        "type": {
131 131
          "type": "string",
132 132
          "knownValues": [
133 133
            "review",
134 134
            "rated",
135 135
            "started",
136 136
            "finished"
137 137
          ]
138 138
        },
139 139
        "title": {
140 140
          "type": "string",
141 141
          "description": "The title of the book"
142 142
        },
143 143
        "hiveId": {
144 144
          "type": "string",
145 145
          "description": "The hive id of the book"
146 146
        },
147 147
        "userDid": {
148 148
          "type": "string",
149 149
          "description": "The DID of the user who added the book"
150 150
        },
151 151
        "createdAt": {
152 152
          "type": "string",
153 153
          "format": "datetime"
154 154
        },
155 155
        "userHandle": {
156 156
          "type": "string",
157 157
          "description": "The handle of the user who added the book"
158 158
        }
159 159
      }
160 160
    },
161 161
    "finished": {
162 162
      "type": "token",
163 163
      "description": "User has finished reading the book"
164 164
    },
165 165
    "userBook": {
166 166
      "type": "object",
167 167
      "required": [
168 168
        "userDid",
169 169
        "title",
170 170
        "authors",
171 171
        "hiveId",
172 172
        "createdAt",
173 173
        "thumbnail"
174 174
      ],
175 175
      "properties": {
176 176
        "cover": {
177 177
          "type": "string",
178 178
          "description": "Cover image of the book"
179 179
        },
180 180
        "stars": {
181 181
          "type": "integer",
182 182
          "maximum": 10,
183 183
          "minimum": 1,
184 184
          "description": "Number of stars given to the book (1-10) which will be mapped to 1-5 stars"
185 185
        },
186 186
        "title": {
187 187
          "type": "string",
188 188
          "maxLength": 512,
189 189
          "minLength": 1,
190 190
          "description": "The title of the book"
191 191
        },
192 192
        "hiveId": {
193 193
          "type": "string",
194 194
          "description": "The book's hive id, used to correlate user's books with the hive"
195 195
        },
196 196
        "rating": {
197 197
          "type": "integer",
198 198
          "maximum": 1000,
199 199
          "minimum": 0,
200 200
          "description": "Average rating (0-1000)"
201 201
        },
202 202
        "review": {
203 203
          "type": "string",
204 204
          "description": "The book's review",
205 205
          "maxGraphemes": 15000
206 206
        },
207 207
        "status": {
208 208
          "type": "string",
209 209
          "knownValues": [
210 210
            "buzz.bookhive.defs#finished",
211 211
            "buzz.bookhive.defs#reading",
212 212
            "buzz.bookhive.defs#wantToRead",
213 213
            "buzz.bookhive.defs#abandoned",
214 214
            "buzz.bookhive.defs#owned"
215 215
          ]
216 216
        },
217 217
        "authors": {
218 218
          "type": "string",
219 219
          "maxLength": 2048,
220 220
          "minLength": 1,
221 221
          "description": "The authors of the book (tab separated)"
222 222
        },
223 223
        "userDid": {
224 224
          "type": "string",
225 225
          "description": "The DID of the user who added the book"
226 226
        },
227 227
        "createdAt": {
228 228
          "type": "string",
229 229
          "format": "datetime"
230 230
        },
231 231
        "startedAt": {
232 232
          "type": "string",
233 233
          "format": "datetime",
234 234
          "description": "The date the user started reading the book"
235 235
        },
236 236
        "thumbnail": {
237 237
          "type": "string",
238 238
          "description": "Cover image of the book"
239 239
        },
240 240
        "finishedAt": {
241 241
          "type": "string",
242 242
          "format": "datetime",
243 243
          "description": "The date the user finished reading the book"
244 244
        },
245 245
        "userHandle": {
246 246
          "type": "string",
247 247
          "description": "The handle of the user who added the book"
248 248
        },
249 249
        "description": {
250 250
          "type": "string",
251 251
          "maxLength": 5000,
252 252
          "description": "Book description/summary"
253 253
        },
254 254
        "bookProgress": {
255 255
          "ref": "buzz.bookhive.defs#bookProgress",
256 256
          "type": "ref",
257 257
          "description": "Progress tracking information for the book"
258 258
        }
259 259
      }
260 260
    },
261 261
    "abandoned": {
262 262
      "type": "token",
263 263
      "description": "User has abandoned the book"
264 264
    },
265 265
    "wantToRead": {
266 266
      "type": "token",
267 267
      "description": "User wants to read the book"
268 268
    },
269 269
    "bookProgress": {
270 270
      "type": "object",
271 271
      "required": [
272 272
        "updatedAt"
273 273
      ],
274 274
      "properties": {
275 275
        "percent": {
276 276
          "type": "integer",
277 277
          "maximum": 100,
278 278
          "minimum": 0,
279 279
          "description": "How far through the book the reader is (0-100)"
280 280
        },
281 281
        "updatedAt": {
282 282
          "type": "string",
283 283
          "format": "datetime",
284 284
          "description": "When the progress was last updated"
285 285
        },
286 286
        "totalPages": {
287 287
          "type": "integer",
288 288
          "minimum": 1,
289 289
          "description": "Total number of pages in the book"
290 290
        },
291 291
        "currentPage": {
292 292
          "type": "integer",
293 293
          "minimum": 1,
294 294
          "description": "Current page the user is on"
295 295
        },
296 296
        "totalChapters": {
297 297
          "type": "integer",
298 298
          "minimum": 1,
299 299
          "description": "Total number of chapters in the book"
300 300
        },
301 301
        "currentChapter": {
302 302
          "type": "integer",
303 303
          "minimum": 1,
304 304
          "description": "Current chapter the user is on"
305 305
        }
306 306
      },
307 307
      "description": "Reading progress tracking data"
308 +
    },
309 +
    "bookIdentifiers": {
310 +
      "type": "object",
311 +
      "properties": {
312 +
        "hiveId": {
313 +
          "type": "string",
314 +
          "description": "BookHive's internal ID"
315 +
        },
316 +
        "isbn10": {
317 +
          "type": "string",
318 +
          "description": "10-digit ISBN"
319 +
        },
320 +
        "isbn13": {
321 +
          "type": "string",
322 +
          "description": "13-digit ISBN"
323 +
        },
324 +
        "goodreadsId": {
325 +
          "type": "string",
326 +
          "description": "Goodreads book ID"
327 +
        }
328 +
      },
329 +
      "description": "External identifiers for a book"
308 330
    }
309 331
  },
310 332
  "$type": "com.atproto.lexicon.schema",
311 333
  "lexicon": 1
312 334
}

Compare Other Versions

Lexicon Garden

@