diff --git a/src/types/entities/channel.rs b/src/types/entities/channel.rs index e408968..973023e 100644 --- a/src/types/entities/channel.rs +++ b/src/types/entities/channel.rs @@ -1,3 +1,4 @@ +use chrono::Utc; use serde::{Deserialize, Serialize}; use serde_repr::{Deserialize_repr, Serialize_repr}; @@ -7,12 +8,17 @@ use crate::types::{ }; #[derive(Default, Debug, Serialize, Deserialize, Clone, PartialEq, Eq)] +#[cfg_attr(feature = "sqlx", derive(sqlx::FromRow))] pub struct Channel { pub id: Snowflake, + pub created_at: chrono::DateTime, #[serde(rename = "type")] pub channel_type: ChannelType, pub guild_id: Option, pub position: Option, + #[cfg(feature = "sqlx")] + pub permission_overwrites: Option>>, + #[cfg(not(feature = "sqlx"))] pub permission_overwrites: Option>, pub name: Option, pub topic: Option, @@ -21,6 +27,7 @@ pub struct Channel { pub bitrate: Option, pub user_limit: Option, pub rate_limit_per_user: Option, + #[cfg_attr(feature = "sqlx", sqlx(skip))] pub recipients: Option>, pub icon: Option, pub owner_id: Option, @@ -31,14 +38,25 @@ pub struct Channel { pub video_quality_mode: Option, pub message_count: Option, pub member_count: Option, + #[cfg_attr(feature = "sqlx", sqlx(skip))] pub thread_metadata: Option, + #[cfg_attr(feature = "sqlx", sqlx(skip))] pub member: Option, pub default_auto_archive_duration: Option, pub permissions: Option, pub flags: Option, pub total_message_sent: Option, + #[cfg(feature = "sqlx")] + pub available_tags: Option>>, + #[cfg(not(feature = "sqlx"))] pub available_tags: Option>, + #[cfg(feature = "sqlx")] + pub applied_tags: Option>>, + #[cfg(not(feature = "sqlx"))] pub applied_tags: Option>, + #[cfg(feature = "sqlx")] + pub default_reaction_emoji: Option>, + #[cfg(not(feature = "sqlx"))] pub default_reaction_emoji: Option, pub default_thread_rate_limit_per_user: Option, pub default_sort_order: Option, @@ -89,6 +107,7 @@ pub struct DefaultReaction { } #[derive(Default, Clone, Copy, Debug, Serialize_repr, Deserialize_repr, PartialEq, Eq)] +#[cfg_attr(feature = "sqlx", derive(sqlx::Type))] #[serde(rename_all = "SCREAMING_SNAKE_CASE")] #[repr(i32)] pub enum ChannelType {