app.didpic.notification.defs
Schema Diff
+9 -13
Compatibility Analysis
Backward Compatible
No changes detected.
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
12
"count",
13
13
"isRead",
14
14
"createdAt",
15
15
"indexedAt"
16
16
],
17
17
"properties": {
18
18
"id": {
19
-
"type": "string",
20
-
"description": "Server-issued opaque identifier for this notification within the recipient's stream."
19
+
"type": "string"
21
20
},
22
21
"post": {
23
22
"ref": "app.didpic.feed.defs#postView",
24
23
"type": "ref",
25
-
"description": "Server-hydrated thread-root post for any reason involving a post (like / comment / reply). Lets clients render a thumbnail preview inline without an extra fetch."
24
+
"description": "Hydrated post view for reasons that involve a post."
26
25
},
27
26
"count": {
28
27
"type": "integer",
29
28
"minimum": 1,
30
-
"description": "Number of underlying records collapsed into this notification. Always 1 for comment / reply / follow; for like notifications it counts repeat likes on the same subject (a viral post that gets many likes produces a single row with count incrementing)."
29
+
"description": "Number of records collapsed into this notification. Always 1 except for likes."
31
30
},
32
31
"author": {
33
32
"ref": "app.didpic.actor.defs#profileBasic",
34
-
"type": "ref",
35
-
"description": "Most recent actor responsible for this notification. For collapsed likes this is the latest liker; the UI typically reads 'author and (count - 1) others ...'."
33
+
"type": "ref"
36
34
},
37
35
"isRead": {
38
-
"type": "boolean",
39
-
"description": "True if this notification's indexedAt is at or before the viewer's stored seenAt boundary."
36
+
"type": "boolean"
40
37
},
41
38
"reason": {
42
39
"type": "string",
43
40
"knownValues": [
44
41
"like",
45
42
"comment",
46
43
"reply",
47
44
"follow"
48
45
]
49
46
},
50
47
"comment": {
51
48
"ref": "app.didpic.feed.defs#commentView",
52
49
"type": "ref",
53
-
"description": "Server-hydrated comment for cases where the subject is a comment: reply (the parent comment) and like (when the like targets a comment rather than a post). Lets clients render the snippet text inline."
50
+
"description": "Hydrated comment view when the subject is a comment."
54
51
},
55
52
"postUri": {
56
53
"type": "string",
57
54
"format": "at-uri",
58
-
"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."
55
+
"description": "Thread-root post URI for post-context reasons. Absent for follow."
59
56
},
60
57
"createdAt": {
61
58
"type": "string",
62
59
"format": "datetime"
63
60
},
64
61
"indexedAt": {
65
62
"type": "string",
66
63
"format": "datetime"
67
64
},
68
65
"recordCid": {
69
66
"type": "string",
70
67
"format": "cid"
71
68
},
72
69
"recordUri": {
73
70
"type": "string",
74
-
"format": "at-uri",
75
-
"description": "URI of the most recent underlying interaction record. For collapsed likes earlier likes are not enumerated."
71
+
"format": "at-uri"
76
72
},
77
73
"subjectCid": {
78
74
"type": "string",
79
75
"format": "cid"
80
76
},
81
77
"subjectUri": {
82
78
"type": "string",
83
79
"format": "at-uri",
84
-
"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."
80
+
"description": "URI of the target record. Post for post-likes and top-level comments, comment for comment-likes and replies. Absent for follow."
85
81
}
86
82
}
87
83
}
88
84
},
89
85
"$type": "com.atproto.lexicon.schema",
90
86
"lexicon": 1
91
87
}