1// @generated by jacquard-lexicon. DO NOT EDIT.
2//
3// Lexicon: net.anisota.graph.mute
4//
5// This file was automatically generated from Lexicon schemas.
6// Any manual changes will be overwritten on the next regeneration.
7
8///Configuration for which types of content to mute
9#[jacquard_derive::lexicon]
10#[derive(
11 serde::Serialize,
12 serde::Deserialize,
13 Debug,
14 Clone,
15 PartialEq,
16 Eq,
17 jacquard_derive::IntoStatic
18)]
19#[serde(rename_all = "camelCase")]
20pub struct ContentTypes<'a> {
21 ///Mute regular posts from this account
22 #[serde(skip_serializing_if = "std::option::Option::is_none")]
23 pub posts: std::option::Option<bool>,
24 ///Mute quote posts from this account
25 #[serde(skip_serializing_if = "std::option::Option::is_none")]
26 pub quotes: std::option::Option<bool>,
27 ///Mute replies from this account
28 #[serde(skip_serializing_if = "std::option::Option::is_none")]
29 pub replies: std::option::Option<bool>,
30 ///Mute reposts from this account
31 #[serde(skip_serializing_if = "std::option::Option::is_none")]
32 pub reposts: std::option::Option<bool>,
33}
34
35///A record for muting content from a specific account with fine-grained control over content types and duration
36#[jacquard_derive::lexicon]
37#[derive(
38 serde::Serialize,
39 serde::Deserialize,
40 Debug,
41 Clone,
42 PartialEq,
43 Eq,
44 jacquard_derive::IntoStatic
45)]
46#[serde(rename_all = "camelCase")]
47pub struct Mute<'a> {
48 ///Types of content to mute from this account
49 #[serde(skip_serializing_if = "std::option::Option::is_none")]
50 #[serde(borrow)]
51 pub content_types: std::option::Option<
52 crate::net_anisota::graph::mute::ContentTypes<'a>,
53 >,
54 ///When the mute was created
55 pub created_at: jacquard_common::types::string::Datetime,
56 ///When this mute expires. If not set, mute is permanent
57 #[serde(skip_serializing_if = "std::option::Option::is_none")]
58 pub expires_at: std::option::Option<jacquard_common::types::string::Datetime>,
59 ///Optional reason for muting this account
60 #[serde(skip_serializing_if = "std::option::Option::is_none")]
61 #[serde(borrow)]
62 pub reason: std::option::Option<jacquard_common::CowStr<'a>>,
63 ///DID of the account to mute
64 #[serde(borrow)]
65 pub subject: jacquard_common::types::string::Did<'a>,
66 ///Specific feeds where this mute should apply. If empty, applies to all feeds
67 #[serde(skip_serializing_if = "std::option::Option::is_none")]
68 #[serde(borrow)]
69 pub target_feeds: std::option::Option<
70 Vec<jacquard_common::types::string::AtUri<'a>>,
71 >,
72}
73
74impl jacquard_common::types::collection::Collection for Mute<'_> {
75 const NSID: &'static str = "net.anisota.graph.mute";
76}