use serde::{Deserialize, Serialize};
pub const CURATELIST: &str = "app.bsky.graph.defs#curatelist";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListItemView {
pub subject: crate::app::bsky::actor::defs::ProfileView,
pub uri: String,
}
pub type ListPurpose = String;
pub const LIST_PURPOSE_MODLIST: &str = "app.bsky.graph.defs#modlist";
pub const LIST_PURPOSE_CURATELIST: &str = "app.bsky.graph.defs#curatelist";
pub const LIST_PURPOSE_REFERENCELIST: &str = "app.bsky.graph.defs#referencelist";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListView {
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
pub cid: String,
pub creator: crate::app::bsky::actor::defs::ProfileView,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub description_facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
pub indexed_at: 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 list_item_count: Option<i64>,
pub name: String,
pub purpose: ListPurpose,
pub uri: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ListViewerState>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListViewBasic {
#[serde(skip_serializing_if = "Option::is_none")]
pub avatar: Option<String>,
pub cid: 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 list_item_count: Option<i64>,
pub name: String,
pub purpose: ListPurpose,
pub uri: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub viewer: Option<ListViewerState>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ListViewerState {
#[serde(skip_serializing_if = "Option::is_none")]
pub blocked: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub muted: Option<bool>,
}
pub const MODLIST: &str = "app.bsky.graph.defs#modlist";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct NotFoundActor {
pub actor: String,
pub not_found: bool,
}
pub const REFERENCELIST: &str = "app.bsky.graph.defs#referencelist";
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Relationship {
#[serde(skip_serializing_if = "Option::is_none")]
pub blocked_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blocked_by_list: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blocking: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub blocking_by_list: Option<String>,
pub did: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub followed_by: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub following: Option<String>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StarterPackView {
pub cid: String,
pub creator: crate::app::bsky::actor::defs::ProfileViewBasic,
#[serde(skip_serializing_if = "Option::is_none")]
pub feeds: Option<Vec<crate::app::bsky::feed::defs::GeneratorView>>,
pub indexed_at: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub joined_all_time_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub joined_week_count: Option<i64>,
#[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 list: Option<ListViewBasic>,
#[serde(skip_serializing_if = "Option::is_none")]
pub list_items_sample: Option<Vec<ListItemView>>,
pub record: serde_json::Value,
pub uri: String,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct StarterPackViewBasic {
pub cid: String,
pub creator: crate::app::bsky::actor::defs::ProfileViewBasic,
pub indexed_at: String,
#[serde(skip_serializing_if = "Option::is_none")]
pub joined_all_time_count: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub joined_week_count: Option<i64>,
#[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 list_item_count: Option<i64>,
pub record: serde_json::Value,
pub uri: String,
}