app.didpic.chat.defs
Schema Diff
+11 -11
Compatibility Analysis
Backward Compatible
No changes detected.
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"conversationView": {
5
5
"properties": {
6
6
"blockedParticipantDids": {
7
-
"description": "DIDs of other participants the viewer blocks or is blocked by. Their messages render as Message blocked, but presence (typing indicators) still flows - clients should anonymize their displayed name to Blocked user rather than hiding the indicator.",
7
+
"description": "DIDs of other participants the viewer blocks or is blocked by.",
8
8
"items": {
9
9
"type": "string"
10
10
},
11
11
"type": "array"
12
12
},
13
13
"createdAt": {
14
14
"format": "datetime",
15
15
"type": "string"
16
16
},
17
17
"id": {
18
18
"type": "string"
19
19
},
20
20
"lastMessageAt": {
21
21
"format": "datetime",
22
22
"type": "string"
23
23
},
24
24
"lastMessagePreview": {
25
25
"type": "string"
26
26
},
27
27
"muted": {
28
-
"description": "True if the viewer has muted this conversation (app.didpic.chat.setMuted) - push notifications only, unread counts are unaffected.",
28
+
"description": "True if the viewer has muted this conversation.",
29
29
"type": "boolean"
30
30
},
31
31
"nickname": {
32
-
"description": "Shared name set by any participant (app.didpic.chat.setNickname). Present only when set - clients fall back to a computed name from participants when absent.",
32
+
"description": "Shared conversation name, if set.",
33
33
"type": "string"
34
34
},
35
35
"otherLastReadAt": {
36
-
"description": "The other participant's last_read_at, for a 1:1 'Seen' indicator. Only present when participantCount is 2.",
36
+
"description": "The other participant's last-read time, for a 1:1 Seen indicator.",
37
37
"format": "datetime",
38
38
"type": "string"
39
39
},
40
40
"participantCount": {
41
41
"maximum": 10,
42
42
"minimum": 2,
43
43
"type": "integer"
44
44
},
45
45
"participants": {
46
46
"items": {
47
47
"ref": "app.didpic.actor.defs#profileBasic",
48
48
"type": "ref"
49
49
},
50
50
"type": "array"
51
51
},
52
52
"unreadCount": {
53
53
"minimum": 0,
54
54
"type": "integer"
55
55
},
56
56
"viewerBlocked": {
57
-
"description": "True only when participantCount is 2 and a block exists either direction between the viewer and the other participant - the conversation is frozen, no new messages can be sent.",
57
+
"description": "True if this 1:1 conversation is frozen by a block.",
58
58
"type": "boolean"
59
59
}
60
60
},
61
61
"required": [
62
62
"id",
63
63
"participants",
64
64
"participantCount",
65
65
"createdAt"
66
66
],
67
67
"type": "object"
68
68
},
69
69
"linkPreview": {
70
70
"properties": {
71
71
"description": {
72
72
"type": "string"
73
73
},
74
74
"imageHeight": {
75
75
"type": "integer"
76
76
},
77
77
"imageUrl": {
78
78
"type": "string"
79
79
},
80
80
"imageWidth": {
81
81
"type": "integer"
82
82
},
83
83
"title": {
84
84
"type": "string"
85
85
},
86
86
"url": {
87
87
"format": "uri",
88
88
"type": "string"
89
89
}
90
90
},
91
91
"required": [
92
92
"url"
93
93
],
94
94
"type": "object"
95
95
},
96
96
"messageView": {
97
97
"properties": {
98
98
"author": {
99
99
"ref": "app.didpic.actor.defs#profileBasic",
100
100
"type": "ref"
101
101
},
102
102
"blocked": {
103
-
"description": "True when this message's author is blocked by, or blocking, the viewer. The message stays in its real position with its real author, but content (text/image/sharedPost/reactions) is withheld - clients should render it like a takedown but labeled Message blocked.",
103
+
"description": "True when the author is blocked by or blocking the viewer.",
104
104
"type": "boolean"
105
105
},
106
106
"conversationId": {
107
107
"type": "string"
108
108
},
109
109
"createdAt": {
110
110
"format": "datetime",
111
111
"type": "string"
112
112
},
113
113
"id": {
114
114
"type": "string"
115
115
},
116
116
"imageHeight": {
117
117
"type": "integer"
118
118
},
119
119
"imageUrl": {
120
120
"type": "string"
121
121
},
122
122
"imageWidth": {
123
123
"type": "integer"
124
124
},
125
125
"linkPreview": {
126
126
"ref": "app.didpic.chat.defs#linkPreview",
127
127
"type": "ref"
128
128
},
129
129
"reactions": {
130
130
"items": {
131
131
"ref": "app.didpic.chat.defs#reactionSummary",
132
132
"type": "ref"
133
133
},
134
134
"type": "array"
135
135
},
136
136
"replyTo": {
137
137
"ref": "app.didpic.chat.defs#replyPreview",
138
138
"type": "ref"
139
139
},
140
140
"sharedPost": {
141
141
"ref": "app.didpic.feed.defs#postView",
142
142
"type": "ref"
143
143
},
144
144
"sharedPostUnavailable": {
145
-
"description": "True when this message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
145
+
"description": "True when the shared post is gone.",
146
146
"type": "boolean"
147
147
},
148
148
"takedown": {
149
149
"type": "boolean"
150
150
},
151
151
"text": {
152
152
"type": "string"
153
153
},
154
154
"unavailable": {
155
-
"description": "True when this message's author's account is takendown/suspended/deleted/deactivated - same redaction as blocked (content withheld, real position/author kept) but labeled Message unavailable, and the same for every viewer rather than a per-relationship thing.",
155
+
"description": "True when the author's account is unavailable.",
156
156
"type": "boolean"
157
157
}
158
158
},
159
159
"required": [
160
160
"id",
161
161
"conversationId",
162
162
"author",
163
163
"createdAt"
164
164
],
165
165
"type": "object"
166
166
},
167
167
"reactionSummary": {
168
168
"properties": {
169
169
"count": {
170
170
"minimum": 1,
171
171
"type": "integer"
172
172
},
173
173
"reaction": {
174
174
"type": "string"
175
175
},
176
176
"viewerReacted": {
177
177
"type": "boolean"
178
178
}
179
179
},
180
180
"required": [
181
181
"reaction",
182
182
"count",
183
183
"viewerReacted"
184
184
],
185
185
"type": "object"
186
186
},
187
187
"replyPreview": {
188
188
"properties": {
189
189
"authorDid": {
190
190
"type": "string"
191
191
},
192
192
"blocked": {
193
-
"description": "True when the replied-to message's author is blocked by, or blocking, the viewer. The message still exists (unlike unavailable) but its content is withheld - only authorDid is present.",
193
+
"description": "True when the replied-to message's author is blocked.",
194
194
"type": "boolean"
195
195
},
196
196
"id": {
197
197
"type": "string"
198
198
},
199
199
"imageHeight": {
200
200
"type": "integer"
201
201
},
202
202
"imageUrl": {
203
203
"type": "string"
204
204
},
205
205
"imageWidth": {
206
206
"type": "integer"
207
207
},
208
208
"linkPreview": {
209
209
"ref": "app.didpic.chat.defs#linkPreview",
210
210
"type": "ref"
211
211
},
212
212
"sharedPost": {
213
213
"ref": "app.didpic.feed.defs#postView",
214
214
"type": "ref"
215
215
},
216
216
"sharedPostUnavailable": {
217
-
"description": "True when the replied-to message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
217
+
"description": "True when the shared post is gone.",
218
218
"type": "boolean"
219
219
},
220
220
"textSnippet": {
221
221
"type": "string"
222
222
},
223
223
"unavailable": {
224
-
"description": "True when the replied-to message has since been taken down, or its author's account is itself takendown/suspended/deleted/deactivated - every other field is omitted in that case.",
224
+
"description": "True when the replied-to message is gone or unavailable.",
225
225
"type": "boolean"
226
226
}
227
227
},
228
228
"required": [
229
229
"id",
230
230
"unavailable"
231
231
],
232
232
"type": "object"
233
233
}
234
234
},
235
235
"id": "app.didpic.chat.defs",
236
236
"lexicon": 1
237
237
}