proto-blue-api 0.3.2

AT Protocol high-level API: agent, rich text, moderation, generated types
Documentation
// Generated by atproto-codegen. Do not edit.
//! Lexicon: chat.bsky.convo.defs
#![allow(clippy::pedantic, clippy::nursery, clippy::all)]

use serde::{Deserialize, Serialize};

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ConvoViewLastMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum ConvoViewLastReactionRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageAndReactionView")]
    BskyConvoDefsMessageAndReactionView(Box<MessageAndReactionView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ConvoView {
    pub id: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub last_message: Option<ConvoViewLastMessageRefs>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub last_reaction: Option<ConvoViewLastReactionRefs>,
    pub members: Vec<crate::chat::bsky::actor::defs::ProfileViewBasic>,
    pub muted: bool,
    pub rev: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub status: Option<String>,
    pub unread_count: i64,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DeletedMessageView {
    pub id: String,
    pub rev: String,
    pub sender: MessageViewSender,
    pub sent_at: proto_blue_syntax::Datetime,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogAcceptConvo {
    pub convo_id: String,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LogAddReactionMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogAddReaction {
    pub convo_id: String,
    pub message: LogAddReactionMessageRefs,
    pub reaction: ReactionView,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogBeginConvo {
    pub convo_id: String,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LogCreateMessageMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogCreateMessage {
    pub convo_id: String,
    pub message: LogCreateMessageMessageRefs,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LogDeleteMessageMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogDeleteMessage {
    pub convo_id: String,
    pub message: LogDeleteMessageMessageRefs,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogLeaveConvo {
    pub convo_id: String,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogMuteConvo {
    pub convo_id: String,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LogReadMessageMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogReadMessage {
    pub convo_id: String,
    pub message: LogReadMessageMessageRefs,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum LogRemoveReactionMessageRefs {
    #[serde(rename = "chat.bsky.convo.defs#messageView")]
    BskyConvoDefsMessageView(Box<MessageView>),
    #[serde(rename = "chat.bsky.convo.defs#deletedMessageView")]
    BskyConvoDefsDeletedMessageView(Box<DeletedMessageView>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogRemoveReaction {
    pub convo_id: String,
    pub message: LogRemoveReactionMessageRefs,
    pub reaction: ReactionView,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct LogUnmuteConvo {
    pub convo_id: String,
    pub rev: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageAndReactionView {
    pub message: MessageView,
    pub reaction: ReactionView,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum MessageInputEmbedRefs {
    #[serde(rename = "app.bsky.embed.record")]
    BskyEmbedRecord(Box<crate::app::bsky::embed::record::Main>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageInput {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub embed: Option<MessageInputEmbedRefs>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
    pub text: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageRef {
    pub convo_id: String,
    pub did: proto_blue_syntax::Did,
    pub message_id: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(tag = "$type")]
pub enum MessageViewEmbedRefs {
    #[serde(rename = "app.bsky.embed.record#view")]
    BskyEmbedRecordView(Box<crate::app::bsky::embed::record::View>),
    #[serde(other)]
    Other,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageView {
    #[serde(skip_serializing_if = "Option::is_none")]
    pub embed: Option<MessageViewEmbedRefs>,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub facets: Option<Vec<crate::app::bsky::richtext::facet::Main>>,
    pub id: String,
    #[serde(skip_serializing_if = "Option::is_none")]
    pub reactions: Option<Vec<ReactionView>>,
    pub rev: String,
    pub sender: MessageViewSender,
    pub sent_at: proto_blue_syntax::Datetime,
    pub text: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct MessageViewSender {
    pub did: proto_blue_syntax::Did,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReactionView {
    pub created_at: proto_blue_syntax::Datetime,
    pub sender: ReactionViewSender,
    pub value: String,
}

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ReactionViewSender {
    pub did: proto_blue_syntax::Did,
}