use crate::model::channel::{ChannelType, ThreadMetadata};
use crate::model::id::{ChannelId, WebhookId};
use crate::model::Permissions;
#[cfg_attr(feature = "typesize", derive(typesize::derive::TypeSize))]
#[derive(Clone, Debug, Deserialize, Serialize)]
#[non_exhaustive]
pub struct PartialChannel {
pub id: ChannelId,
pub name: Option<String>,
#[serde(rename = "type")]
pub kind: ChannelType,
pub permissions: Option<Permissions>,
pub thread_metadata: Option<ThreadMetadata>,
pub parent_id: Option<ChannelId>,
}
#[derive(Clone, Debug, Deserialize, Serialize)]
#[non_exhaustive]
pub struct FollowedChannel {
pub channel_id: ChannelId,
pub webhook_id: WebhookId,
}