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