app.didpic.chat.defs
Schema Diff
+64 -6
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 30 non-breaking changes.
Breaking Changes (1)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.didpic.chat.defs#linkPreview", src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.url", kind: "prop", name: Some("url") }
Non-Breaking Changes (30)
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.blockedParticipantDids" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.blockedParticipantDids:items" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.nickname" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.description" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageHeight" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageUrl" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageWidth" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.title" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.url" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.blocked" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.linkPreview" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.unavailable" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.blocked" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.linkPreview" }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#conversationView", tgt: "app.didpic.chat.defs#conversationView.blockedParticipantDids", kind: "prop", name: Some("blockedParticipantDids") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#conversationView", tgt: "app.didpic.chat.defs#conversationView.nickname", kind: "prop", name: Some("nickname") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#conversationView.blockedParticipantDids", tgt: "app.didpic.chat.defs#conversationView.blockedParticipantDids:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.description", kind: "prop", name: Some("description") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageHeight", kind: "prop", name: Some("imageHeight") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageUrl", kind: "prop", name: Some("imageUrl") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageWidth", kind: "prop", name: Some("imageWidth") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.title", kind: "prop", name: Some("title") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.blocked", kind: "prop", name: Some("blocked") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.linkPreview", kind: "prop", name: Some("linkPreview") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.unavailable", kind: "prop", name: Some("unavailable") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#messageView.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.blocked", kind: "prop", name: Some("blocked") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.linkPreview", kind: "prop", name: Some("linkPreview") }
- AddedEdge AddedEdge { src: "app.didpic.chat.defs#replyPreview.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.blockedParticipantDids" }AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.blockedParticipantDids:items" }AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.nickname" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.description" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageHeight" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageUrl" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.imageWidth" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.title" }AddedVertex { vertex_id: "app.didpic.chat.defs#linkPreview.url" }AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.blocked" }AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.linkPreview" }AddedVertex { vertex_id: "app.didpic.chat.defs#messageView.unavailable" }AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.blocked" }AddedVertex { vertex_id: "app.didpic.chat.defs#replyPreview.linkPreview" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "app.didpic.chat.defs#linkPreview", src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.url", kind: "prop", name: Some("url") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#conversationView", tgt: "app.didpic.chat.defs#conversationView.blockedParticipantDids", kind: "prop", name: Some("blockedParticipantDids") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#conversationView", tgt: "app.didpic.chat.defs#conversationView.nickname", kind: "prop", name: Some("nickname") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#conversationView.blockedParticipantDids", tgt: "app.didpic.chat.defs#conversationView.blockedParticipantDids:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.description", kind: "prop", name: Some("description") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageHeight", kind: "prop", name: Some("imageHeight") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageUrl", kind: "prop", name: Some("imageUrl") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.imageWidth", kind: "prop", name: Some("imageWidth") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#linkPreview", tgt: "app.didpic.chat.defs#linkPreview.title", kind: "prop", name: Some("title") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.blocked", kind: "prop", name: Some("blocked") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.linkPreview", kind: "prop", name: Some("linkPreview") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView", tgt: "app.didpic.chat.defs#messageView.unavailable", kind: "prop", name: Some("unavailable") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#messageView.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.blocked", kind: "prop", name: Some("blocked") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#replyPreview", tgt: "app.didpic.chat.defs#replyPreview.linkPreview", kind: "prop", name: Some("linkPreview") }
- Non-breaking: AddedEdge { src: "app.didpic.chat.defs#replyPreview.linkPreview", tgt: "app.didpic.chat.defs#linkPreview", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"conversationView": {
5
5
"properties": {
6
+
"blockedParticipantDids": {
7
+
"description": "DIDs of other participants the viewer blocks or is blocked by.",
8
+
"items": {
9
+
"type": "string"
10
+
},
11
+
"type": "array"
12
+
},
6
13
"createdAt": {
7
14
"format": "datetime",
8
15
"type": "string"
9
16
},
10
17
"id": {
11
18
"type": "string"
12
19
},
13
20
"lastMessageAt": {
14
21
"format": "datetime",
15
22
"type": "string"
16
23
},
17
24
"lastMessagePreview": {
18
25
"type": "string"
19
26
},
20
27
"muted": {
21
-
"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.",
22
29
"type": "boolean"
23
30
},
31
+
"nickname": {
32
+
"description": "Shared conversation name, if set.",
33
+
"type": "string"
34
+
},
24
35
"otherLastReadAt": {
25
-
"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.",
26
37
"format": "datetime",
27
38
"type": "string"
28
39
},
29
40
"participantCount": {
30
41
"maximum": 10,
31
42
"minimum": 2,
32
43
"type": "integer"
33
44
},
34
45
"participants": {
35
46
"items": {
36
47
"ref": "app.didpic.actor.defs#profileBasic",
37
48
"type": "ref"
38
49
},
39
50
"type": "array"
40
51
},
41
52
"unreadCount": {
42
53
"minimum": 0,
43
54
"type": "integer"
44
55
},
45
56
"viewerBlocked": {
46
-
"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.",
47
58
"type": "boolean"
48
59
}
49
60
},
50
61
"required": [
51
62
"id",
52
63
"participants",
53
64
"participantCount",
54
65
"createdAt"
55
66
],
56
67
"type": "object"
57
68
},
69
+
"linkPreview": {
70
+
"properties": {
71
+
"description": {
72
+
"type": "string"
73
+
},
74
+
"imageHeight": {
75
+
"type": "integer"
76
+
},
77
+
"imageUrl": {
78
+
"type": "string"
79
+
},
80
+
"imageWidth": {
81
+
"type": "integer"
82
+
},
83
+
"title": {
84
+
"type": "string"
85
+
},
86
+
"url": {
87
+
"format": "uri",
88
+
"type": "string"
89
+
}
90
+
},
91
+
"required": [
92
+
"url"
93
+
],
94
+
"type": "object"
95
+
},
58
96
"messageView": {
59
97
"properties": {
60
98
"author": {
61
99
"ref": "app.didpic.actor.defs#profileBasic",
62
100
"type": "ref"
63
101
},
102
+
"blocked": {
103
+
"description": "True when the author is blocked by or blocking the viewer.",
104
+
"type": "boolean"
105
+
},
64
106
"conversationId": {
65
107
"type": "string"
66
108
},
67
109
"createdAt": {
68
110
"format": "datetime",
69
111
"type": "string"
70
112
},
71
113
"id": {
72
114
"type": "string"
73
115
},
74
116
"imageHeight": {
75
117
"type": "integer"
76
118
},
77
119
"imageUrl": {
78
120
"type": "string"
79
121
},
80
122
"imageWidth": {
81
123
"type": "integer"
82
124
},
125
+
"linkPreview": {
126
+
"ref": "app.didpic.chat.defs#linkPreview",
127
+
"type": "ref"
128
+
},
83
129
"reactions": {
84
130
"items": {
85
131
"ref": "app.didpic.chat.defs#reactionSummary",
86
132
"type": "ref"
87
133
},
88
134
"type": "array"
89
135
},
90
136
"replyTo": {
91
137
"ref": "app.didpic.chat.defs#replyPreview",
92
138
"type": "ref"
93
139
},
94
140
"sharedPost": {
95
141
"ref": "app.didpic.feed.defs#postView",
96
142
"type": "ref"
97
143
},
98
144
"sharedPostUnavailable": {
99
-
"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.",
100
146
"type": "boolean"
101
147
},
102
148
"takedown": {
103
149
"type": "boolean"
104
150
},
105
151
"text": {
106
152
"type": "string"
153
+
},
154
+
"unavailable": {
155
+
"description": "True when the author's account is unavailable.",
156
+
"type": "boolean"
107
157
}
108
158
},
109
159
"required": [
110
160
"id",
111
161
"conversationId",
112
162
"author",
113
163
"createdAt"
114
164
],
115
165
"type": "object"
116
166
},
117
167
"reactionSummary": {
118
168
"properties": {
119
169
"count": {
120
170
"minimum": 1,
121
171
"type": "integer"
122
172
},
123
173
"reaction": {
124
174
"type": "string"
125
175
},
126
176
"viewerReacted": {
127
177
"type": "boolean"
128
178
}
129
179
},
130
180
"required": [
131
181
"reaction",
132
182
"count",
133
183
"viewerReacted"
134
184
],
135
185
"type": "object"
136
186
},
137
187
"replyPreview": {
138
188
"properties": {
139
189
"authorDid": {
140
190
"type": "string"
141
191
},
192
+
"blocked": {
193
+
"description": "True when the replied-to message's author is blocked.",
194
+
"type": "boolean"
195
+
},
142
196
"id": {
143
197
"type": "string"
144
198
},
145
199
"imageHeight": {
146
200
"type": "integer"
147
201
},
148
202
"imageUrl": {
149
203
"type": "string"
150
204
},
151
205
"imageWidth": {
152
206
"type": "integer"
153
207
},
208
+
"linkPreview": {
209
+
"ref": "app.didpic.chat.defs#linkPreview",
210
+
"type": "ref"
211
+
},
154
212
"sharedPost": {
155
213
"ref": "app.didpic.feed.defs#postView",
156
214
"type": "ref"
157
215
},
158
216
"sharedPostUnavailable": {
159
-
"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.",
160
218
"type": "boolean"
161
219
},
162
220
"textSnippet": {
163
221
"type": "string"
164
222
},
165
223
"unavailable": {
166
-
"description": "True when the replied-to message has since been taken down - every other field is omitted in that case.",
224
+
"description": "True when the replied-to message is gone or unavailable.",
167
225
"type": "boolean"
168
226
}
169
227
},
170
228
"required": [
171
229
"id",
172
230
"unavailable"
173
231
],
174
232
"type": "object"
175
233
}
176
234
},
177
235
"id": "app.didpic.chat.defs",
178
236
"lexicon": 1
179
237
}