#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct AdultContentPref {
pub enabled: bool,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ContentLabelPref {
pub label: String,
pub visibility: String,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct FeedViewPref {
pub feed: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_quote_posts: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_replies: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_replies_by_like_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_replies_by_unfollowed: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_reposts: Option<bool>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct HiddenPostsPref {
pub items: Vec<String>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct InterestsPref {
pub tags: Vec<String>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct MutedWord {
pub targets: Vec<crate::app::bsky::actor::defs::MutedWordTarget>,
pub value: String,
}
pub type MutedWordTarget = String;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct MutedWordsPref {
pub items: Vec<crate::app::bsky::actor::defs::MutedWord>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct PersonalDetailsPref {
#[serde(skip_serializing_if = "Option::is_none")]
pub birth_date: Option<crate::types::string::Datetime>,
}
pub type Preferences = Vec<PreferencesItem>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ProfileView {
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub did: crate::types::string::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub handle: crate::types::string::Handle,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexed_at: Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ProfileViewBasic {
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
pub did: crate::types::string::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub handle: crate::types::string::Handle,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ProfileViewDetailed {
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub banner: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub did: crate::types::string::Did,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub followers_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub follows_count: Option<i64>,
pub handle: crate::types::string::Handle,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexed_at: Option<crate::types::string::Datetime>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labels: Option<Vec<crate::com::atproto::label::defs::Label>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub posts_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct SavedFeedsPref {
pub pinned: Vec<String>,
pub saved: Vec<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub timeline_index: Option<i64>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ThreadViewPref {
#[serde(skip_serializing_if = "Option::is_none")]
pub prioritize_followed_users: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<String>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ViewerState {
#[serde(skip_serializing_if = "Option::is_none")]
pub blocked_by: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blocking: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blocking_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
#[serde(skip_serializing_if = "Option::is_none")]
pub followed_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub following: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub muted: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub muted_by_list: Option<crate::app::bsky::graph::defs::ListViewBasic>,
}
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum PreferencesItem {
#[serde(rename = "app.bsky.actor.defs#adultContentPref")]
AdultContentPref(Box<AdultContentPref>),
#[serde(rename = "app.bsky.actor.defs#contentLabelPref")]
ContentLabelPref(Box<ContentLabelPref>),
#[serde(rename = "app.bsky.actor.defs#savedFeedsPref")]
SavedFeedsPref(Box<SavedFeedsPref>),
#[serde(rename = "app.bsky.actor.defs#personalDetailsPref")]
PersonalDetailsPref(Box<PersonalDetailsPref>),
#[serde(rename = "app.bsky.actor.defs#feedViewPref")]
FeedViewPref(Box<FeedViewPref>),
#[serde(rename = "app.bsky.actor.defs#threadViewPref")]
ThreadViewPref(Box<ThreadViewPref>),
#[serde(rename = "app.bsky.actor.defs#interestsPref")]
InterestsPref(Box<InterestsPref>),
#[serde(rename = "app.bsky.actor.defs#mutedWordsPref")]
MutedWordsPref(Box<MutedWordsPref>),
#[serde(rename = "app.bsky.actor.defs#hiddenPostsPref")]
HiddenPostsPref(Box<HiddenPostsPref>),
}