diff --git a/src/api/types.rs b/src/api/types.rs index ee428a7..ac542a1 100644 --- a/src/api/types.rs +++ b/src/api/types.rs @@ -237,6 +237,110 @@ struct Message { role_subscription_data: Option, } +#[derive(Debug, Serialize, Deserialize)] +struct MessageCreate { + #[serde(flatten)] + message: Message, + guild_id: Option, + member: Option, + mentions: Vec<(UserObject, GuildMember)>, // Not sure if this is correct: https://discord.com/developers/docs/topics/gateway-events#message-create +} + +#[derive(Debug, Serialize, Deserialize)] +struct PartialMessage { + id: Option, + channel_id: Option, + author: Option, + content: Option, + timestamp: Option, + edited_timestamp: Option, + tts: Option, + mention_everyone: Option, + mentions: Option>, + mention_roles: Option>, + mention_channels: Option>, + attachments: Option>, + embeds: Option>, + reactions: Option>, + nonce: Option, + pinned: Option, + webhook_id: Option, + #[serde(rename = "type")] + message_type: Option, + activity: Option, + application: Option, + application_id: Option, + message_reference: Option, + flags: Option, + referenced_message: Option>, + interaction: Option, + thread: Option, + components: Option>, + sticker_items: Option>, + stickers: Option>, + position: Option, + role_subscription_data: Option, + guild_id: Option, + member: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageUpdate { + #[serde(flatten)] + message: PartialMessage, + guild_id: Option, + member: Option, + mentions: Vec<(UserObject, GuildMember)>, // Not sure if this is correct: https://discord.com/developers/docs/topics/gateway-events#message-create +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageDelete { + id: String, + channel_id: String, + guild_id: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageDeleteBulk { + ids: Vec, + channel_id: String, + guild_id: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageReactionAdd { + user_id: String, + channel_id: String, + message_id: String, + guild_id: Option, + member: Option, + emoji: Emoji, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageReactionRemove { + user_id: String, + channel_id: String, + message_id: String, + guild_id: Option, + emoji: Emoji, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageReactionRemoveAll { + channel_id: String, + message_id: String, + guild_id: Option, +} + +#[derive(Debug, Serialize, Deserialize)] +struct MessageReactionRemoveEmoji { + channel_id: String, + message_id: String, + guild_id: Option, + emoji: Emoji, +} + #[derive(Debug, Serialize, Deserialize)] struct ChannelMention { id: String,