use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AdultContentPref {
pub enabled: bool,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BskyAppProgressGuide {
pub guide: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct BskyAppStatePref {
#[serde(skip_serializing_if = "Option::is_none")]
pub active_progress_guide: Option<BskyAppProgressGuide>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nuxs: Option<Vec<Nux>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub queued_nudges: Option<Vec<String>>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ContentLabelPref {
pub label: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub labeler_did: Option<String>,
pub visibility: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeclaredAgePref {
#[serde(skip_serializing_if = "Option::is_none")]
pub is_over_age13: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_over_age16: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_over_age18: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[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(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct HiddenPostsPref {
pub items: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct InterestsPref {
pub tags: Vec<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct KnownFollowers {
pub count: i64,
pub followers: Vec<ProfileViewBasic>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LabelerPrefItem {
pub did: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LabelersPref {
pub labelers: Vec<LabelerPrefItem>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LiveEventPreferences {
#[serde(skip_serializing_if = "Option::is_none")]
pub hidden_feed_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_all_feeds: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MutedWord {
#[serde(skip_serializing_if = "Option::is_none")]
pub actor_target: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub id: Option<String>,
pub targets: Vec<MutedWordTarget>,
pub value: String,
}
pub type MutedWordTarget = String;
pub const MutedWordTarget_CONTENT: &str = "content";
pub const MutedWordTarget_TAG: &str = "tag";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MutedWordsPref {
pub items: Vec<MutedWord>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Nux {
pub completed: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub data: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
pub id: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PersonalDetailsPref {
#[serde(skip_serializing_if = "Option::is_none")]
pub birth_date: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct PostInteractionSettingsPref {
#[serde(skip_serializing_if = "Option::is_none")]
pub postgate_embedding_rules: Option<Vec<serde_json::Value>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub threadgate_allow_rules: Option<Vec<serde_json::Value>>,
}
pub type Preferences = Vec<serde_json::Value>;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileAssociated {
#[serde(skip_serializing_if = "Option::is_none")]
pub activity_subscription: Option<ProfileAssociatedActivitySubscription>,
#[serde(skip_serializing_if = "Option::is_none")]
pub chat: Option<ProfileAssociatedChat>,
#[serde(skip_serializing_if = "Option::is_none")]
pub feedgens: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub germ: Option<ProfileAssociatedGerm>,
#[serde(skip_serializing_if = "Option::is_none")]
pub labeler: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub lists: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub starter_packs: Option<i64>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileAssociatedActivitySubscription {
pub allow_subscriptions: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileAssociatedChat {
pub allow_incoming: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileAssociatedGerm {
pub message_me_url: String,
pub show_button_to: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileView {
#[serde(skip_serializing_if = "Option::is_none")]
pub associated: Option<ProfileAssociated>,
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub debug: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub did: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub handle: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexed_at: Option<String>,
#[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 pronouns: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<StatusView>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<VerificationState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileViewBasic {
#[serde(skip_serializing_if = "Option::is_none")]
pub associated: Option<ProfileAssociated>,
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub created_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub debug: Option<serde_json::Value>,
pub did: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub display_name: Option<String>,
pub handle: String,
#[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 pronouns: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<StatusView>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<VerificationState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ProfileViewDetailed {
#[serde(skip_serializing_if = "Option::is_none")]
pub associated: Option<ProfileAssociated>,
#[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 created_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub debug: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
pub did: String,
#[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: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub indexed_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub joined_via_starter_pack: Option<crate::app::bsky::graph::defs::StarterPackViewBasic>,
#[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 pinned_post: Option<crate::com::atproto::repo::strongRef::Main>,
#[serde(skip_serializing_if = "Option::is_none")]
pub posts_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub pronouns: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<StatusView>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verification: Option<VerificationState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ViewerState>,
#[serde(skip_serializing_if = "Option::is_none")]
pub website: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SavedFeed {
pub id: String,
pub pinned: bool,
#[serde(rename = "type")]
pub r#type: String,
pub value: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[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(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct SavedFeedsPrefV2 {
pub items: Vec<SavedFeed>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StatusView {
#[serde(skip_serializing_if = "Option::is_none")]
pub cid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub embed: Option<serde_json::Value>,
#[serde(skip_serializing_if = "Option::is_none")]
pub expires_at: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_disabled: Option<bool>,
pub record: serde_json::Value,
pub status: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub uri: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ThreadViewPref {
#[serde(skip_serializing_if = "Option::is_none")]
pub sort: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VerificationPrefs {
#[serde(skip_serializing_if = "Option::is_none")]
pub hide_badges: Option<bool>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VerificationState {
pub trusted_verifier_status: String,
pub verifications: Vec<VerificationView>,
pub verified_status: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct VerificationView {
pub created_at: String,
pub is_valid: bool,
pub issuer: String,
pub uri: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ViewerState {
#[serde(skip_serializing_if = "Option::is_none")]
pub activity_subscription: Option<crate::app::bsky::notification::defs::ActivitySubscription>,
#[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 known_followers: Option<KnownFollowers>,
#[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>,
}