1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: app.bsky.notification.listNotifications
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8#[derive(
9 serde::Serialize,
10 serde::Deserialize,
11 Debug,
12 Clone,
13 PartialEq,
14 Eq,
15 bon::Builder
16)]
17#[builder(start_fn = new)]
18#[serde(rename_all = "camelCase")]
19pub struct ListNotifications<'a> {
20 #[serde(skip_serializing_if = "std::option::Option::is_none")]
21 #[serde(borrow)]
22 #[builder(into)]
23 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
24 ///(default: 50, min: 1, max: 100)
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26 pub limit: std::option::Option<i64>,
27 #[serde(skip_serializing_if = "std::option::Option::is_none")]
28 pub priority: std::option::Option<bool>,
29 #[serde(skip_serializing_if = "std::option::Option::is_none")]
30 #[serde(borrow)]
31 pub reasons: std::option::Option<Vec<jacquard_common::CowStr<'a>>>,
32 #[serde(skip_serializing_if = "std::option::Option::is_none")]
33 pub seen_at: std::option::Option<jacquard_common::types::string::Datetime>,
34}
35
36impl jacquard_common::IntoStatic for ListNotifications<'_> {
37 type Output = ListNotifications<'static>;
38 fn into_static(self) -> Self::Output {
39 ListNotifications {
40 cursor: self.cursor.into_static(),
41 limit: self.limit.into_static(),
42 priority: self.priority.into_static(),
43 reasons: self.reasons.into_static(),
44 seen_at: self.seen_at.into_static(),
45 }
46 }
47}
48
49#[jacquard_derive::lexicon]
50#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
51#[serde(rename_all = "camelCase")]
52pub struct ListNotificationsOutput<'a> {
53 #[serde(skip_serializing_if = "std::option::Option::is_none")]
54 #[serde(borrow)]
55 pub cursor: std::option::Option<jacquard_common::CowStr<'a>>,
56 #[serde(borrow)]
57 pub notifications: Vec<jacquard_common::types::value::Data<'a>>,
58 #[serde(skip_serializing_if = "std::option::Option::is_none")]
59 pub priority: std::option::Option<bool>,
60 #[serde(skip_serializing_if = "std::option::Option::is_none")]
61 pub seen_at: std::option::Option<jacquard_common::types::string::Datetime>,
62}
63
64impl jacquard_common::IntoStatic for ListNotificationsOutput<'_> {
65 type Output = ListNotificationsOutput<'static>;
66 fn into_static(self) -> Self::Output {
67 ListNotificationsOutput {
68 cursor: self.cursor.into_static(),
69 notifications: self.notifications.into_static(),
70 priority: self.priority.into_static(),
71 seen_at: self.seen_at.into_static(),
72 extra_data: self.extra_data.into_static(),
73 }
74 }
75}
76
77impl jacquard_common::types::xrpc::XrpcRequest for ListNotifications<'_> {
78 const NSID: &'static str = "app.bsky.notification.listNotifications";
79 const METHOD: jacquard_common::types::xrpc::XrpcMethod = jacquard_common::types::xrpc::XrpcMethod::Query;
80 const OUTPUT_ENCODING: &'static str = "application/json";
81 type Output<'de> = ListNotificationsOutput<'de>;
82 type Err<'de> = jacquard_common::types::xrpc::GenericError<'de>;
83}
84
85#[jacquard_derive::lexicon]
86#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
87#[serde(rename_all = "camelCase")]
88pub struct Notification<'a> {
89 #[serde(borrow)]
90 pub author: crate::app_bsky::actor::ProfileView<'a>,
91 #[serde(borrow)]
92 pub cid: jacquard_common::types::string::Cid<'a>,
93 pub indexed_at: jacquard_common::types::string::Datetime,
94 pub is_read: bool,
95 #[serde(skip_serializing_if = "std::option::Option::is_none")]
96 #[serde(borrow)]
97 pub labels: std::option::Option<Vec<crate::com_atproto::label::Label<'a>>>,
98 ///The reason why this notification was delivered - e.g. your post was liked, or you received a new follower.
99 #[serde(borrow)]
100 pub reason: jacquard_common::CowStr<'a>,
101 #[serde(skip_serializing_if = "std::option::Option::is_none")]
102 #[serde(borrow)]
103 pub reason_subject: std::option::Option<jacquard_common::types::string::AtUri<'a>>,
104 #[serde(borrow)]
105 pub record: jacquard_common::types::value::Data<'a>,
106 #[serde(borrow)]
107 pub uri: jacquard_common::types::string::AtUri<'a>,
108}
109
110impl jacquard_common::IntoStatic for Notification<'_> {
111 type Output = Notification<'static>;
112 fn into_static(self) -> Self::Output {
113 Notification {
114 author: self.author.into_static(),
115 cid: self.cid.into_static(),
116 indexed_at: self.indexed_at.into_static(),
117 is_read: self.is_read.into_static(),
118 labels: self.labels.into_static(),
119 reason: self.reason.into_static(),
120 reason_subject: self.reason_subject.into_static(),
121 record: self.record.into_static(),
122 uri: self.uri.into_static(),
123 extra_data: self.extra_data.into_static(),
124 }
125 }
126}