app.didpic.notification.defs
Schema Diff
+24 -9
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.notification.defs#notificationView.count", sort: "minimum", value: "1" }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.comment" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.count" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.post" }
- AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.comment", kind: "prop", name: Some("comment") }
- AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
- AddedEdge AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.post", kind: "prop", name: Some("post") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.comment" }AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.count" }AddedVertex { vertex_id: "app.didpic.notification.defs#notificationView.post" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.didpic.notification.defs#notificationView.count", sort: "minimum", value: "1" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.comment", kind: "prop", name: Some("comment") }
- Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.count", kind: "prop", name: Some("count") }
- Non-breaking: AddedEdge { src: "app.didpic.notification.defs#notificationView", tgt: "app.didpic.notification.defs#notificationView.post", kind: "prop", name: Some("post") }
1
1
{
2
2
"id": "app.didpic.notification.defs",
3
3
"defs": {
4
4
"notificationView": {
5
5
"type": "object",
6
6
"required": [
7
7
"id",
8
8
"reason",
9
9
"author",
10
10
"recordUri",
11
11
"recordCid",
12
+
"count",
12
13
"isRead",
13
14
"createdAt",
14
15
"indexedAt"
15
16
],
16
17
"properties": {
17
18
"id": {
18
-
"type": "string",
19
-
"description": "Server-issued opaque identifier for this notification within the recipient's stream."
19
+
"type": "string"
20
+
},
21
+
"post": {
22
+
"ref": "app.didpic.feed.defs#postView",
23
+
"type": "ref",
24
+
"description": "Hydrated post view for reasons that involve a post."
20
25
},
26
+
"count": {
27
+
"type": "integer",
28
+
"minimum": 1,
29
+
"description": "Number of records collapsed into this notification. Always 1 except for likes."
30
+
},
21
31
"author": {
22
32
"ref": "app.didpic.actor.defs#profileBasic",
23
33
"type": "ref"
24
34
},
25
35
"isRead": {
26
-
"type": "boolean",
27
-
"description": "True if this notification's indexedAt is at or before the viewer's stored seenAt boundary."
36
+
"type": "boolean"
28
37
},
29
38
"reason": {
30
39
"type": "string",
31
40
"knownValues": [
32
41
"like",
33
42
"comment",
34
43
"reply",
35
-
"follow"
44
+
"follow",
45
+
"subscribed-post",
46
+
"mention"
36
47
]
37
48
},
49
+
"comment": {
50
+
"ref": "app.didpic.feed.defs#commentView",
51
+
"type": "ref",
52
+
"description": "Hydrated comment view when the subject is a comment."
53
+
},
38
54
"postUri": {
39
55
"type": "string",
40
56
"format": "at-uri",
41
-
"description": "Denormalised thread-root post URI for all post-context reasons (like / comment / reply). Lets clients route directly to the post view without a lookup. Absent for follow notifications."
57
+
"description": "Thread-root post URI for post-context reasons. Absent for follow."
42
58
},
43
59
"createdAt": {
44
60
"type": "string",
45
61
"format": "datetime"
46
62
},
47
63
"indexedAt": {
48
64
"type": "string",
49
65
"format": "datetime"
50
66
},
51
67
"recordCid": {
52
68
"type": "string",
53
69
"format": "cid"
54
70
},
55
71
"recordUri": {
56
72
"type": "string",
57
-
"format": "at-uri",
58
-
"description": "URI of the underlying interaction record (like, comment, or follow)."
73
+
"format": "at-uri"
59
74
},
60
75
"subjectCid": {
61
76
"type": "string",
62
77
"format": "cid"
63
78
},
64
79
"subjectUri": {
65
80
"type": "string",
66
81
"format": "at-uri",
67
-
"description": "URI of the thing the interaction targeted: post for top-level comments and post-likes, comment for comment-likes and replies. Absent for follow notifications."
82
+
"description": "URI of the target record. Post for post-likes and top-level comments, comment for comment-likes and replies. Absent for follow."
68
83
}
69
84
}
70
85
}
71
86
},
72
87
"$type": "com.atproto.lexicon.schema",
73
88
"lexicon": 1
74
89
}