1use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
7#[serde(tag = "$type")]
8pub enum ConvoViewLastMessageRefs {
9 #[serde(rename = "chat.bsky.convo.defs#messageView")]
10 BskyConvoDefsMessageView(Box<MessageView>),
11 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
12 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
13 #[serde(other)]
14 Other,
15}
16
17#[derive(Debug, Clone, Serialize, Deserialize)]
18#[serde(tag = "$type")]
19pub enum ConvoViewLastReactionRefs {
20 #[serde(rename = "chat.bsky.convo.defs#messageAndReactionView")]
21 BskyConvoDefsMessageAndReactionView(Box<MessageAndReactionView>),
22 #[serde(other)]
23 Other,
24}
25
26#[derive(Debug, Clone, Serialize, Deserialize)]
27#[serde(rename_all = "camelCase")]
28pub struct ConvoView {
29 pub id: String,
30 #[serde(skip_serializing_if = "Option::is_none")]
31 pub last_message: Option<ConvoViewLastMessageRefs>,
32 #[serde(skip_serializing_if = "Option::is_none")]
33 pub last_reaction: Option<ConvoViewLastReactionRefs>,
34 pub members: Vec<crate::chat::bsky::actor::defs::ProfileViewBasic>,
35 pub muted: bool,
36 pub rev: String,
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub status: Option<String>,
39 pub unread_count: i64,
40}
41
42#[derive(Debug, Clone, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct DeletedMessageView {
45 pub id: String,
46 pub rev: String,
47 pub sender: MessageViewSender,
48 pub sent_at: proto_blue_syntax::Datetime,
49}
50
51#[derive(Debug, Clone, Serialize, Deserialize)]
52#[serde(rename_all = "camelCase")]
53pub struct LogAcceptConvo {
54 pub convo_id: String,
55 pub rev: String,
56}
57
58#[derive(Debug, Clone, Serialize, Deserialize)]
59#[serde(tag = "$type")]
60pub enum LogAddReactionMessageRefs {
61 #[serde(rename = "chat.bsky.convo.defs#messageView")]
62 BskyConvoDefsMessageView(Box<MessageView>),
63 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
64 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
65 #[serde(other)]
66 Other,
67}
68
69#[derive(Debug, Clone, Serialize, Deserialize)]
70#[serde(rename_all = "camelCase")]
71pub struct LogAddReaction {
72 pub convo_id: String,
73 pub message: LogAddReactionMessageRefs,
74 pub reaction: ReactionView,
75 pub rev: String,
76}
77
78#[derive(Debug, Clone, Serialize, Deserialize)]
79#[serde(rename_all = "camelCase")]
80pub struct LogBeginConvo {
81 pub convo_id: String,
82 pub rev: String,
83}
84
85#[derive(Debug, Clone, Serialize, Deserialize)]
86#[serde(tag = "$type")]
87pub enum LogCreateMessageMessageRefs {
88 #[serde(rename = "chat.bsky.convo.defs#messageView")]
89 BskyConvoDefsMessageView(Box<MessageView>),
90 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
91 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
92 #[serde(other)]
93 Other,
94}
95
96#[derive(Debug, Clone, Serialize, Deserialize)]
97#[serde(rename_all = "camelCase")]
98pub struct LogCreateMessage {
99 pub convo_id: String,
100 pub message: LogCreateMessageMessageRefs,
101 pub rev: String,
102}
103
104#[derive(Debug, Clone, Serialize, Deserialize)]
105#[serde(tag = "$type")]
106pub enum LogDeleteMessageMessageRefs {
107 #[serde(rename = "chat.bsky.convo.defs#messageView")]
108 BskyConvoDefsMessageView(Box<MessageView>),
109 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
110 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
111 #[serde(other)]
112 Other,
113}
114
115#[derive(Debug, Clone, Serialize, Deserialize)]
116#[serde(rename_all = "camelCase")]
117pub struct LogDeleteMessage {
118 pub convo_id: String,
119 pub message: LogDeleteMessageMessageRefs,
120 pub rev: String,
121}
122
123#[derive(Debug, Clone, Serialize, Deserialize)]
124#[serde(rename_all = "camelCase")]
125pub struct LogLeaveConvo {
126 pub convo_id: String,
127 pub rev: String,
128}
129
130#[derive(Debug, Clone, Serialize, Deserialize)]
131#[serde(rename_all = "camelCase")]
132pub struct LogMuteConvo {
133 pub convo_id: String,
134 pub rev: String,
135}
136
137#[derive(Debug, Clone, Serialize, Deserialize)]
138#[serde(tag = "$type")]
139pub enum LogReadMessageMessageRefs {
140 #[serde(rename = "chat.bsky.convo.defs#messageView")]
141 BskyConvoDefsMessageView(Box<MessageView>),
142 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
143 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
144 #[serde(other)]
145 Other,
146}
147
148#[derive(Debug, Clone, Serialize, Deserialize)]
149#[serde(rename_all = "camelCase")]
150pub struct LogReadMessage {
151 pub convo_id: String,
152 pub message: LogReadMessageMessageRefs,
153 pub rev: String,
154}
155
156#[derive(Debug, Clone, Serialize, Deserialize)]
157#[serde(tag = "$type")]
158pub enum LogRemoveReactionMessageRefs {
159 #[serde(rename = "chat.bsky.convo.defs#messageView")]
160 BskyConvoDefsMessageView(Box<MessageView>),
161 #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
162 BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
163 #[serde(other)]
164 Other,
165}
166
167#[derive(Debug, Clone, Serialize, Deserialize)]
168#[serde(rename_all = "camelCase")]
169pub struct LogRemoveReaction {
170 pub convo_id: String,
171 pub message: LogRemoveReactionMessageRefs,
172 pub reaction: ReactionView,
173 pub rev: String,
174}
175
176#[derive(Debug, Clone, Serialize, Deserialize)]
177#[serde(rename_all = "camelCase")]
178pub struct LogUnmuteConvo {
179 pub convo_id: String,
180 pub rev: String,
181}
182
183#[derive(Debug, Clone, Serialize, Deserialize)]
184#[serde(rename_all = "camelCase")]
185pub struct MessageAndReactionView {
186 pub message: MessageView,
187 pub reaction: ReactionView,
188}
189
190#[derive(Debug, Clone, Serialize, Deserialize)]
191#[serde(tag = "$type")]
192pub enum MessageInputEmbedRefs {
193 #[serde(rename = "app.bsky.embed.record")]
194 BskyEmbedRecord(Box<crate::app::bsky::embed::record::Main>),
195 #[serde(other)]
196 Other,
197}
198
199#[derive(Debug, Clone, Serialize, Deserialize)]
200#[serde(rename_all = "camelCase")]
201pub struct MessageInput {
202 #[serde(skip_serializing_if = "Option::is_none")]
203 pub embed: Option<MessageInputEmbedRefs>,
204 #[serde(skip_serializing_if = "Option::is_none")]
205 pub facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
206 pub text: String,
207}
208
209#[derive(Debug, Clone, Serialize, Deserialize)]
210#[serde(rename_all = "camelCase")]
211pub struct MessageRef {
212 pub convo_id: String,
213 pub did: proto_blue_syntax::Did,
214 pub message_id: String,
215}
216
217#[derive(Debug, Clone, Serialize, Deserialize)]
218#[serde(tag = "$type")]
219pub enum MessageViewEmbedRefs {
220 #[serde(rename = "app.bsky.embed.record#view")]
221 BskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>),
222 #[serde(other)]
223 Other,
224}
225
226#[derive(Debug, Clone, Serialize, Deserialize)]
227#[serde(rename_all = "camelCase")]
228pub struct MessageView {
229 #[serde(skip_serializing_if = "Option::is_none")]
230 pub embed: Option<MessageViewEmbedRefs>,
231 #[serde(skip_serializing_if = "Option::is_none")]
232 pub facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
233 pub id: String,
234 #[serde(skip_serializing_if = "Option::is_none")]
235 pub reactions: Option<Vec<ReactionView>>,
236 pub rev: String,
237 pub sender: MessageViewSender,
238 pub sent_at: proto_blue_syntax::Datetime,
239 pub text: String,
240}
241
242#[derive(Debug, Clone, Serialize, Deserialize)]
243#[serde(rename_all = "camelCase")]
244pub struct MessageViewSender {
245 pub did: proto_blue_syntax::Did,
246}
247
248#[derive(Debug, Clone, Serialize, Deserialize)]
249#[serde(rename_all = "camelCase")]
250pub struct ReactionView {
251 pub created_at: proto_blue_syntax::Datetime,
252 pub sender: ReactionViewSender,
253 pub value: String,
254}
255
256#[derive(Debug, Clone, Serialize, Deserialize)]
257#[serde(rename_all = "camelCase")]
258pub struct ReactionViewSender {
259 pub did: proto_blue_syntax::Did,
260}