use serde::Deserialize;
use crate::{
models::{Channel, Id, Message, User},
Context, Result,
};
#[derive(Debug, Deserialize, Clone, PartialEq)]
pub struct ChannelAckEvent {
#[serde(rename = "id")]
pub channel_id: Id,
#[serde(rename = "user")]
pub user_id: Id,
pub message_id: Id,
}
impl ChannelAckEvent {
pub async fn channel(&self, cx: &Context) -> Result<Channel> {
Channel::fetch(cx, &self.channel_id).await
}
pub async fn user(&self, cx: &Context) -> Result<User> {
User::fetch(cx, &self.user_id).await
}
pub async fn message(&self, cx: &Context) -> Result<Message> {
Message::fetch(cx, &self.channel_id, &self.message_id).await
}
}