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