app.didpic.chat.defs
Schema Diff
+9 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 4 non-breaking changes.
Non-Breaking Changes (4)
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.muted" }
- AddedVertex AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.otherLastReadAt" }
- 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.otherLastReadAt", kind: "prop", name: Some("otherLastReadAt") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.muted" }AddedVertex { vertex_id: "app.didpic.chat.defs#conversationView.otherLastReadAt" }
Additional Notes
- 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.otherLastReadAt", kind: "prop", name: Some("otherLastReadAt") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"conversationView": {
5
5
"properties": {
6
6
"createdAt": {
7
7
"format": "datetime",
8
8
"type": "string"
9
9
},
10
10
"id": {
11
11
"type": "string"
12
12
},
13
13
"lastMessageAt": {
14
14
"format": "datetime",
15
15
"type": "string"
16
16
},
17
17
"lastMessagePreview": {
18
18
"type": "string"
19
19
},
20
+
"muted": {
21
+
"description": "True if the viewer has muted this conversation (app.didpic.chat.setMuted) - push notifications only, unread counts are unaffected.",
22
+
"type": "boolean"
23
+
},
24
+
"otherLastReadAt": {
25
+
"description": "The other participant's last_read_at, for a 1:1 'Seen' indicator. Only present when participantCount is 2.",
26
+
"format": "datetime",
27
+
"type": "string"
28
+
},
20
29
"participantCount": {
21
30
"maximum": 10,
22
31
"minimum": 2,
23
32
"type": "integer"
24
33
},
25
34
"participants": {
26
35
"items": {
27
36
"ref": "app.didpic.actor.defs#profileBasic",
28
37
"type": "ref"
29
38
},
30
39
"type": "array"
31
40
},
32
41
"unreadCount": {
33
42
"minimum": 0,
34
43
"type": "integer"
35
44
},
36
45
"viewerBlocked": {
37
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.",
38
47
"type": "boolean"
39
48
}
40
49
},
41
50
"required": [
42
51
"id",
43
52
"participants",
44
53
"participantCount",
45
54
"createdAt"
46
55
],
47
56
"type": "object"
48
57
},
49
58
"messageView": {
50
59
"properties": {
51
60
"author": {
52
61
"ref": "app.didpic.actor.defs#profileBasic",
53
62
"type": "ref"
54
63
},
55
64
"conversationId": {
56
65
"type": "string"
57
66
},
58
67
"createdAt": {
59
68
"format": "datetime",
60
69
"type": "string"
61
70
},
62
71
"id": {
63
72
"type": "string"
64
73
},
65
74
"imageHeight": {
66
75
"type": "integer"
67
76
},
68
77
"imageUrl": {
69
78
"type": "string"
70
79
},
71
80
"imageWidth": {
72
81
"type": "integer"
73
82
},
74
83
"reactions": {
75
84
"items": {
76
85
"ref": "app.didpic.chat.defs#reactionSummary",
77
86
"type": "ref"
78
87
},
79
88
"type": "array"
80
89
},
81
90
"replyTo": {
82
91
"ref": "app.didpic.chat.defs#replyPreview",
83
92
"type": "ref"
84
93
},
85
94
"sharedPost": {
86
95
"ref": "app.didpic.feed.defs#postView",
87
96
"type": "ref"
88
97
},
89
98
"sharedPostUnavailable": {
90
99
"description": "True when this message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
91
100
"type": "boolean"
92
101
},
93
102
"takedown": {
94
103
"type": "boolean"
95
104
},
96
105
"text": {
97
106
"type": "string"
98
107
}
99
108
},
100
109
"required": [
101
110
"id",
102
111
"conversationId",
103
112
"author",
104
113
"createdAt"
105
114
],
106
115
"type": "object"
107
116
},
108
117
"reactionSummary": {
109
118
"properties": {
110
119
"count": {
111
120
"minimum": 1,
112
121
"type": "integer"
113
122
},
114
123
"reaction": {
115
124
"type": "string"
116
125
},
117
126
"viewerReacted": {
118
127
"type": "boolean"
119
128
}
120
129
},
121
130
"required": [
122
131
"reaction",
123
132
"count",
124
133
"viewerReacted"
125
134
],
126
135
"type": "object"
127
136
},
128
137
"replyPreview": {
129
138
"properties": {
130
139
"authorDid": {
131
140
"type": "string"
132
141
},
133
142
"id": {
134
143
"type": "string"
135
144
},
136
145
"imageHeight": {
137
146
"type": "integer"
138
147
},
139
148
"imageUrl": {
140
149
"type": "string"
141
150
},
142
151
"imageWidth": {
143
152
"type": "integer"
144
153
},
145
154
"sharedPost": {
146
155
"ref": "app.didpic.feed.defs#postView",
147
156
"type": "ref"
148
157
},
149
158
"sharedPostUnavailable": {
150
159
"description": "True when the replied-to message shared a post that has since been deleted/taken down - sharedPost is omitted in that case.",
151
160
"type": "boolean"
152
161
},
153
162
"textSnippet": {
154
163
"type": "string"
155
164
},
156
165
"unavailable": {
157
166
"description": "True when the replied-to message has since been taken down - every other field is omitted in that case.",
158
167
"type": "boolean"
159
168
}
160
169
},
161
170
"required": [
162
171
"id",
163
172
"unavailable"
164
173
],
165
174
"type": "object"
166
175
}
167
176
},
168
177
"id": "app.didpic.chat.defs",
169
178
"lexicon": 1
170
179
}