#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct ConvoViewData {
pub id: String,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub kind: core::option::Option<crate::types::Union<ConvoViewKindRefs>>,
pub rev: String,
}
pub type ConvoView = crate::types::Object<ConvoViewData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct DirectConvoData {}
pub type DirectConvo = crate::types::Object<DirectConvoData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(rename_all = "camelCase")]
pub struct GroupConvoData {
pub created_at: crate::types::string::Datetime,
#[serde(skip_serializing_if = "core::option::Option::is_none")]
pub join_link: core::option::Option<crate::chat::bsky::group::defs::JoinLinkView>,
pub join_request_count: i64,
pub lock_status: crate::chat::bsky::convo::defs::ConvoLockStatus,
pub member_count: i64,
pub member_limit: i64,
pub name: String,
}
pub type GroupConvo = crate::types::Object<GroupConvoData>;
#[derive(serde::Serialize, serde::Deserialize, Debug, Clone, PartialEq, Eq)]
#[serde(tag = "$type")]
pub enum ConvoViewKindRefs {
#[serde(rename = "chat.bsky.moderation.defs#directConvo")]
DirectConvo(Box<DirectConvo>),
#[serde(rename = "chat.bsky.moderation.defs#groupConvo")]
GroupConvo(Box<GroupConvo>),
}