jacquard_api/chat_bsky/
convo.rs

1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: chat.bsky.convo.defs
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8pub mod accept_convo;
9pub mod add_reaction;
10pub mod delete_message_for_self;
11pub mod get_convo;
12pub mod get_convo_availability;
13pub mod get_convo_for_members;
14pub mod get_log;
15pub mod get_messages;
16pub mod leave_convo;
17pub mod list_convos;
18pub mod mute_convo;
19pub mod remove_reaction;
20pub mod send_message;
21pub mod send_message_batch;
22pub mod unmute_convo;
23pub mod update_all_read;
24pub mod update_read;
25
26#[jacquard_derive::lexicon]
27#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
28#[serde(rename_all = "camelCase")]
29pub struct ConvoView<'a> {
30    #[serde(borrow)]
31    pub id: jacquard_common::CowStr<'a>,
32    #[serde(skip_serializing_if = "std::option::Option::is_none")]
33    #[serde(borrow)]
34    pub last_message: std::option::Option<ConvoViewRecordLastMessage<'a>>,
35    #[serde(skip_serializing_if = "std::option::Option::is_none")]
36    #[serde(borrow)]
37    pub last_reaction: std::option::Option<ConvoViewRecordLastReaction<'a>>,
38    #[serde(borrow)]
39    pub members: Vec<crate::chat_bsky::actor::ProfileViewBasic<'a>>,
40    pub muted: bool,
41    #[serde(borrow)]
42    pub rev: jacquard_common::CowStr<'a>,
43    #[serde(skip_serializing_if = "std::option::Option::is_none")]
44    #[serde(borrow)]
45    pub status: std::option::Option<jacquard_common::CowStr<'a>>,
46    pub unread_count: i64,
47}
48
49#[jacquard_derive::open_union]
50#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
51#[serde(tag = "$type")]
52#[serde(bound(deserialize = "'de: 'a"))]
53pub enum ConvoViewRecordLastMessage<'a> {}
54impl jacquard_common::IntoStatic for ConvoViewRecordLastMessage<'_> {
55    type Output = ConvoViewRecordLastMessage<'static>;
56    fn into_static(self) -> Self::Output {
57        match self {
58            ConvoViewRecordLastMessage::Unknown(v) => {
59                ConvoViewRecordLastMessage::Unknown(v.into_static())
60            }
61        }
62    }
63}
64
65#[jacquard_derive::open_union]
66#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
67#[serde(tag = "$type")]
68#[serde(bound(deserialize = "'de: 'a"))]
69pub enum ConvoViewRecordLastReaction<'a> {}
70impl jacquard_common::IntoStatic for ConvoViewRecordLastReaction<'_> {
71    type Output = ConvoViewRecordLastReaction<'static>;
72    fn into_static(self) -> Self::Output {
73        match self {
74            ConvoViewRecordLastReaction::Unknown(v) => {
75                ConvoViewRecordLastReaction::Unknown(v.into_static())
76            }
77        }
78    }
79}
80
81impl jacquard_common::IntoStatic for ConvoView<'_> {
82    type Output = ConvoView<'static>;
83    fn into_static(self) -> Self::Output {
84        ConvoView {
85            id: self.id.into_static(),
86            last_message: self.last_message.into_static(),
87            last_reaction: self.last_reaction.into_static(),
88            members: self.members.into_static(),
89            muted: self.muted.into_static(),
90            rev: self.rev.into_static(),
91            status: self.status.into_static(),
92            unread_count: self.unread_count.into_static(),
93            extra_data: self.extra_data.into_static(),
94        }
95    }
96}
97
98#[jacquard_derive::lexicon]
99#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
100#[serde(rename_all = "camelCase")]
101pub struct DeletedMessageView<'a> {
102    #[serde(borrow)]
103    pub id: jacquard_common::CowStr<'a>,
104    #[serde(borrow)]
105    pub rev: jacquard_common::CowStr<'a>,
106    #[serde(borrow)]
107    pub sender: crate::chat_bsky::convo::MessageViewSender<'a>,
108    pub sent_at: jacquard_common::types::string::Datetime,
109}
110
111impl jacquard_common::IntoStatic for DeletedMessageView<'_> {
112    type Output = DeletedMessageView<'static>;
113    fn into_static(self) -> Self::Output {
114        DeletedMessageView {
115            id: self.id.into_static(),
116            rev: self.rev.into_static(),
117            sender: self.sender.into_static(),
118            sent_at: self.sent_at.into_static(),
119            extra_data: self.extra_data.into_static(),
120        }
121    }
122}
123
124#[jacquard_derive::lexicon]
125#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
126#[serde(rename_all = "camelCase")]
127pub struct LogAcceptConvo<'a> {
128    #[serde(borrow)]
129    pub convo_id: jacquard_common::CowStr<'a>,
130    #[serde(borrow)]
131    pub rev: jacquard_common::CowStr<'a>,
132}
133
134impl jacquard_common::IntoStatic for LogAcceptConvo<'_> {
135    type Output = LogAcceptConvo<'static>;
136    fn into_static(self) -> Self::Output {
137        LogAcceptConvo {
138            convo_id: self.convo_id.into_static(),
139            rev: self.rev.into_static(),
140            extra_data: self.extra_data.into_static(),
141        }
142    }
143}
144
145#[jacquard_derive::lexicon]
146#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
147#[serde(rename_all = "camelCase")]
148pub struct LogAddReaction<'a> {
149    #[serde(borrow)]
150    pub convo_id: jacquard_common::CowStr<'a>,
151    #[serde(borrow)]
152    pub message: LogAddReactionRecordMessage<'a>,
153    #[serde(borrow)]
154    pub reaction: crate::chat_bsky::convo::ReactionView<'a>,
155    #[serde(borrow)]
156    pub rev: jacquard_common::CowStr<'a>,
157}
158
159#[jacquard_derive::open_union]
160#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
161#[serde(tag = "$type")]
162#[serde(bound(deserialize = "'de: 'a"))]
163pub enum LogAddReactionRecordMessage<'a> {}
164impl jacquard_common::IntoStatic for LogAddReactionRecordMessage<'_> {
165    type Output = LogAddReactionRecordMessage<'static>;
166    fn into_static(self) -> Self::Output {
167        match self {
168            LogAddReactionRecordMessage::Unknown(v) => {
169                LogAddReactionRecordMessage::Unknown(v.into_static())
170            }
171        }
172    }
173}
174
175impl jacquard_common::IntoStatic for LogAddReaction<'_> {
176    type Output = LogAddReaction<'static>;
177    fn into_static(self) -> Self::Output {
178        LogAddReaction {
179            convo_id: self.convo_id.into_static(),
180            message: self.message.into_static(),
181            reaction: self.reaction.into_static(),
182            rev: self.rev.into_static(),
183            extra_data: self.extra_data.into_static(),
184        }
185    }
186}
187
188#[jacquard_derive::lexicon]
189#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
190#[serde(rename_all = "camelCase")]
191pub struct LogBeginConvo<'a> {
192    #[serde(borrow)]
193    pub convo_id: jacquard_common::CowStr<'a>,
194    #[serde(borrow)]
195    pub rev: jacquard_common::CowStr<'a>,
196}
197
198impl jacquard_common::IntoStatic for LogBeginConvo<'_> {
199    type Output = LogBeginConvo<'static>;
200    fn into_static(self) -> Self::Output {
201        LogBeginConvo {
202            convo_id: self.convo_id.into_static(),
203            rev: self.rev.into_static(),
204            extra_data: self.extra_data.into_static(),
205        }
206    }
207}
208
209#[jacquard_derive::lexicon]
210#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
211#[serde(rename_all = "camelCase")]
212pub struct LogCreateMessage<'a> {
213    #[serde(borrow)]
214    pub convo_id: jacquard_common::CowStr<'a>,
215    #[serde(borrow)]
216    pub message: LogCreateMessageRecordMessage<'a>,
217    #[serde(borrow)]
218    pub rev: jacquard_common::CowStr<'a>,
219}
220
221#[jacquard_derive::open_union]
222#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
223#[serde(tag = "$type")]
224#[serde(bound(deserialize = "'de: 'a"))]
225pub enum LogCreateMessageRecordMessage<'a> {}
226impl jacquard_common::IntoStatic for LogCreateMessageRecordMessage<'_> {
227    type Output = LogCreateMessageRecordMessage<'static>;
228    fn into_static(self) -> Self::Output {
229        match self {
230            LogCreateMessageRecordMessage::Unknown(v) => {
231                LogCreateMessageRecordMessage::Unknown(v.into_static())
232            }
233        }
234    }
235}
236
237impl jacquard_common::IntoStatic for LogCreateMessage<'_> {
238    type Output = LogCreateMessage<'static>;
239    fn into_static(self) -> Self::Output {
240        LogCreateMessage {
241            convo_id: self.convo_id.into_static(),
242            message: self.message.into_static(),
243            rev: self.rev.into_static(),
244            extra_data: self.extra_data.into_static(),
245        }
246    }
247}
248
249#[jacquard_derive::lexicon]
250#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
251#[serde(rename_all = "camelCase")]
252pub struct LogDeleteMessage<'a> {
253    #[serde(borrow)]
254    pub convo_id: jacquard_common::CowStr<'a>,
255    #[serde(borrow)]
256    pub message: LogDeleteMessageRecordMessage<'a>,
257    #[serde(borrow)]
258    pub rev: jacquard_common::CowStr<'a>,
259}
260
261#[jacquard_derive::open_union]
262#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
263#[serde(tag = "$type")]
264#[serde(bound(deserialize = "'de: 'a"))]
265pub enum LogDeleteMessageRecordMessage<'a> {}
266impl jacquard_common::IntoStatic for LogDeleteMessageRecordMessage<'_> {
267    type Output = LogDeleteMessageRecordMessage<'static>;
268    fn into_static(self) -> Self::Output {
269        match self {
270            LogDeleteMessageRecordMessage::Unknown(v) => {
271                LogDeleteMessageRecordMessage::Unknown(v.into_static())
272            }
273        }
274    }
275}
276
277impl jacquard_common::IntoStatic for LogDeleteMessage<'_> {
278    type Output = LogDeleteMessage<'static>;
279    fn into_static(self) -> Self::Output {
280        LogDeleteMessage {
281            convo_id: self.convo_id.into_static(),
282            message: self.message.into_static(),
283            rev: self.rev.into_static(),
284            extra_data: self.extra_data.into_static(),
285        }
286    }
287}
288
289#[jacquard_derive::lexicon]
290#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
291#[serde(rename_all = "camelCase")]
292pub struct LogLeaveConvo<'a> {
293    #[serde(borrow)]
294    pub convo_id: jacquard_common::CowStr<'a>,
295    #[serde(borrow)]
296    pub rev: jacquard_common::CowStr<'a>,
297}
298
299impl jacquard_common::IntoStatic for LogLeaveConvo<'_> {
300    type Output = LogLeaveConvo<'static>;
301    fn into_static(self) -> Self::Output {
302        LogLeaveConvo {
303            convo_id: self.convo_id.into_static(),
304            rev: self.rev.into_static(),
305            extra_data: self.extra_data.into_static(),
306        }
307    }
308}
309
310#[jacquard_derive::lexicon]
311#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
312#[serde(rename_all = "camelCase")]
313pub struct LogMuteConvo<'a> {
314    #[serde(borrow)]
315    pub convo_id: jacquard_common::CowStr<'a>,
316    #[serde(borrow)]
317    pub rev: jacquard_common::CowStr<'a>,
318}
319
320impl jacquard_common::IntoStatic for LogMuteConvo<'_> {
321    type Output = LogMuteConvo<'static>;
322    fn into_static(self) -> Self::Output {
323        LogMuteConvo {
324            convo_id: self.convo_id.into_static(),
325            rev: self.rev.into_static(),
326            extra_data: self.extra_data.into_static(),
327        }
328    }
329}
330
331#[jacquard_derive::lexicon]
332#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
333#[serde(rename_all = "camelCase")]
334pub struct LogReadMessage<'a> {
335    #[serde(borrow)]
336    pub convo_id: jacquard_common::CowStr<'a>,
337    #[serde(borrow)]
338    pub message: LogReadMessageRecordMessage<'a>,
339    #[serde(borrow)]
340    pub rev: jacquard_common::CowStr<'a>,
341}
342
343#[jacquard_derive::open_union]
344#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
345#[serde(tag = "$type")]
346#[serde(bound(deserialize = "'de: 'a"))]
347pub enum LogReadMessageRecordMessage<'a> {}
348impl jacquard_common::IntoStatic for LogReadMessageRecordMessage<'_> {
349    type Output = LogReadMessageRecordMessage<'static>;
350    fn into_static(self) -> Self::Output {
351        match self {
352            LogReadMessageRecordMessage::Unknown(v) => {
353                LogReadMessageRecordMessage::Unknown(v.into_static())
354            }
355        }
356    }
357}
358
359impl jacquard_common::IntoStatic for LogReadMessage<'_> {
360    type Output = LogReadMessage<'static>;
361    fn into_static(self) -> Self::Output {
362        LogReadMessage {
363            convo_id: self.convo_id.into_static(),
364            message: self.message.into_static(),
365            rev: self.rev.into_static(),
366            extra_data: self.extra_data.into_static(),
367        }
368    }
369}
370
371#[jacquard_derive::lexicon]
372#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
373#[serde(rename_all = "camelCase")]
374pub struct LogRemoveReaction<'a> {
375    #[serde(borrow)]
376    pub convo_id: jacquard_common::CowStr<'a>,
377    #[serde(borrow)]
378    pub message: LogRemoveReactionRecordMessage<'a>,
379    #[serde(borrow)]
380    pub reaction: crate::chat_bsky::convo::ReactionView<'a>,
381    #[serde(borrow)]
382    pub rev: jacquard_common::CowStr<'a>,
383}
384
385#[jacquard_derive::open_union]
386#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
387#[serde(tag = "$type")]
388#[serde(bound(deserialize = "'de: 'a"))]
389pub enum LogRemoveReactionRecordMessage<'a> {}
390impl jacquard_common::IntoStatic for LogRemoveReactionRecordMessage<'_> {
391    type Output = LogRemoveReactionRecordMessage<'static>;
392    fn into_static(self) -> Self::Output {
393        match self {
394            LogRemoveReactionRecordMessage::Unknown(v) => {
395                LogRemoveReactionRecordMessage::Unknown(v.into_static())
396            }
397        }
398    }
399}
400
401impl jacquard_common::IntoStatic for LogRemoveReaction<'_> {
402    type Output = LogRemoveReaction<'static>;
403    fn into_static(self) -> Self::Output {
404        LogRemoveReaction {
405            convo_id: self.convo_id.into_static(),
406            message: self.message.into_static(),
407            reaction: self.reaction.into_static(),
408            rev: self.rev.into_static(),
409            extra_data: self.extra_data.into_static(),
410        }
411    }
412}
413
414#[jacquard_derive::lexicon]
415#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
416#[serde(rename_all = "camelCase")]
417pub struct LogUnmuteConvo<'a> {
418    #[serde(borrow)]
419    pub convo_id: jacquard_common::CowStr<'a>,
420    #[serde(borrow)]
421    pub rev: jacquard_common::CowStr<'a>,
422}
423
424impl jacquard_common::IntoStatic for LogUnmuteConvo<'_> {
425    type Output = LogUnmuteConvo<'static>;
426    fn into_static(self) -> Self::Output {
427        LogUnmuteConvo {
428            convo_id: self.convo_id.into_static(),
429            rev: self.rev.into_static(),
430            extra_data: self.extra_data.into_static(),
431        }
432    }
433}
434
435#[jacquard_derive::lexicon]
436#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
437#[serde(rename_all = "camelCase")]
438pub struct MessageAndReactionView<'a> {
439    #[serde(borrow)]
440    pub message: crate::chat_bsky::convo::MessageView<'a>,
441    #[serde(borrow)]
442    pub reaction: crate::chat_bsky::convo::ReactionView<'a>,
443}
444
445impl jacquard_common::IntoStatic for MessageAndReactionView<'_> {
446    type Output = MessageAndReactionView<'static>;
447    fn into_static(self) -> Self::Output {
448        MessageAndReactionView {
449            message: self.message.into_static(),
450            reaction: self.reaction.into_static(),
451            extra_data: self.extra_data.into_static(),
452        }
453    }
454}
455
456#[jacquard_derive::lexicon]
457#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
458#[serde(rename_all = "camelCase")]
459pub struct MessageInput<'a> {
460    #[serde(skip_serializing_if = "std::option::Option::is_none")]
461    #[serde(borrow)]
462    pub embed: std::option::Option<MessageInputRecordEmbed<'a>>,
463    ///Annotations of text (mentions, URLs, hashtags, etc)
464    #[serde(skip_serializing_if = "std::option::Option::is_none")]
465    #[serde(borrow)]
466    pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
467    #[serde(borrow)]
468    pub text: jacquard_common::CowStr<'a>,
469}
470
471#[jacquard_derive::open_union]
472#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
473#[serde(tag = "$type")]
474#[serde(bound(deserialize = "'de: 'a"))]
475pub enum MessageInputRecordEmbed<'a> {
476    #[serde(rename = "app.bsky.embed.record")]
477    Record(Box<crate::app_bsky::embed::record::Record<'a>>),
478}
479
480impl jacquard_common::IntoStatic for MessageInputRecordEmbed<'_> {
481    type Output = MessageInputRecordEmbed<'static>;
482    fn into_static(self) -> Self::Output {
483        match self {
484            MessageInputRecordEmbed::Record(v) => {
485                MessageInputRecordEmbed::Record(v.into_static())
486            }
487            MessageInputRecordEmbed::Unknown(v) => {
488                MessageInputRecordEmbed::Unknown(v.into_static())
489            }
490        }
491    }
492}
493
494impl jacquard_common::IntoStatic for MessageInput<'_> {
495    type Output = MessageInput<'static>;
496    fn into_static(self) -> Self::Output {
497        MessageInput {
498            embed: self.embed.into_static(),
499            facets: self.facets.into_static(),
500            text: self.text.into_static(),
501            extra_data: self.extra_data.into_static(),
502        }
503    }
504}
505
506#[jacquard_derive::lexicon]
507#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
508#[serde(rename_all = "camelCase")]
509pub struct MessageRef<'a> {
510    #[serde(borrow)]
511    pub convo_id: jacquard_common::CowStr<'a>,
512    #[serde(borrow)]
513    pub did: jacquard_common::types::string::Did<'a>,
514    #[serde(borrow)]
515    pub message_id: jacquard_common::CowStr<'a>,
516}
517
518impl jacquard_common::IntoStatic for MessageRef<'_> {
519    type Output = MessageRef<'static>;
520    fn into_static(self) -> Self::Output {
521        MessageRef {
522            convo_id: self.convo_id.into_static(),
523            did: self.did.into_static(),
524            message_id: self.message_id.into_static(),
525            extra_data: self.extra_data.into_static(),
526        }
527    }
528}
529
530#[jacquard_derive::lexicon]
531#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
532#[serde(rename_all = "camelCase")]
533pub struct MessageView<'a> {
534    #[serde(skip_serializing_if = "std::option::Option::is_none")]
535    #[serde(borrow)]
536    pub embed: std::option::Option<MessageViewRecordEmbed<'a>>,
537    ///Annotations of text (mentions, URLs, hashtags, etc)
538    #[serde(skip_serializing_if = "std::option::Option::is_none")]
539    #[serde(borrow)]
540    pub facets: std::option::Option<Vec<crate::app_bsky::richtext::facet::Facet<'a>>>,
541    #[serde(borrow)]
542    pub id: jacquard_common::CowStr<'a>,
543    ///Reactions to this message, in ascending order of creation time.
544    #[serde(skip_serializing_if = "std::option::Option::is_none")]
545    #[serde(borrow)]
546    pub reactions: std::option::Option<Vec<crate::chat_bsky::convo::ReactionView<'a>>>,
547    #[serde(borrow)]
548    pub rev: jacquard_common::CowStr<'a>,
549    #[serde(borrow)]
550    pub sender: crate::chat_bsky::convo::MessageViewSender<'a>,
551    pub sent_at: jacquard_common::types::string::Datetime,
552    #[serde(borrow)]
553    pub text: jacquard_common::CowStr<'a>,
554}
555
556#[jacquard_derive::open_union]
557#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
558#[serde(tag = "$type")]
559#[serde(bound(deserialize = "'de: 'a"))]
560pub enum MessageViewRecordEmbed<'a> {
561    #[serde(rename = "app.bsky.embed.record#view")]
562    RecordView(Box<crate::app_bsky::embed::record::View<'a>>),
563}
564
565impl jacquard_common::IntoStatic for MessageViewRecordEmbed<'_> {
566    type Output = MessageViewRecordEmbed<'static>;
567    fn into_static(self) -> Self::Output {
568        match self {
569            MessageViewRecordEmbed::RecordView(v) => {
570                MessageViewRecordEmbed::RecordView(v.into_static())
571            }
572            MessageViewRecordEmbed::Unknown(v) => {
573                MessageViewRecordEmbed::Unknown(v.into_static())
574            }
575        }
576    }
577}
578
579impl jacquard_common::IntoStatic for MessageView<'_> {
580    type Output = MessageView<'static>;
581    fn into_static(self) -> Self::Output {
582        MessageView {
583            embed: self.embed.into_static(),
584            facets: self.facets.into_static(),
585            id: self.id.into_static(),
586            reactions: self.reactions.into_static(),
587            rev: self.rev.into_static(),
588            sender: self.sender.into_static(),
589            sent_at: self.sent_at.into_static(),
590            text: self.text.into_static(),
591            extra_data: self.extra_data.into_static(),
592        }
593    }
594}
595
596#[jacquard_derive::lexicon]
597#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
598#[serde(rename_all = "camelCase")]
599pub struct MessageViewSender<'a> {
600    #[serde(borrow)]
601    pub did: jacquard_common::types::string::Did<'a>,
602}
603
604impl jacquard_common::IntoStatic for MessageViewSender<'_> {
605    type Output = MessageViewSender<'static>;
606    fn into_static(self) -> Self::Output {
607        MessageViewSender {
608            did: self.did.into_static(),
609            extra_data: self.extra_data.into_static(),
610        }
611    }
612}
613
614#[jacquard_derive::lexicon]
615#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
616#[serde(rename_all = "camelCase")]
617pub struct ReactionView<'a> {
618    pub created_at: jacquard_common::types::string::Datetime,
619    #[serde(borrow)]
620    pub sender: crate::chat_bsky::convo::ReactionViewSender<'a>,
621    #[serde(borrow)]
622    pub value: jacquard_common::CowStr<'a>,
623}
624
625impl jacquard_common::IntoStatic for ReactionView<'_> {
626    type Output = ReactionView<'static>;
627    fn into_static(self) -> Self::Output {
628        ReactionView {
629            created_at: self.created_at.into_static(),
630            sender: self.sender.into_static(),
631            value: self.value.into_static(),
632            extra_data: self.extra_data.into_static(),
633        }
634    }
635}
636
637#[jacquard_derive::lexicon]
638#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
639#[serde(rename_all = "camelCase")]
640pub struct ReactionViewSender<'a> {
641    #[serde(borrow)]
642    pub did: jacquard_common::types::string::Did<'a>,
643}
644
645impl jacquard_common::IntoStatic for ReactionViewSender<'_> {
646    type Output = ReactionViewSender<'static>;
647    fn into_static(self) -> Self::Output {
648        ReactionViewSender {
649            did: self.did.into_static(),
650            extra_data: self.extra_data.into_static(),
651        }
652    }
653}