// SPDX-License-Identifier: AGPL-3.0-or-later use chrono::{DateTime, Utc}; use serde::{Deserialize, Serialize}; use std::collections::HashSet; #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct AttachmentUdt { pub attachment_id: Option, pub filename: Option, pub size: Option, pub title: Option, pub description: Option, pub width: Option, pub height: Option, pub duration: Option, pub content_type: Option, pub content_hash: Option, pub placeholder: Option, pub flags: Option, pub nsfw: Option, pub duration_secs: Option, pub waveform: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedAuthorUdt { pub name: Option, pub url: Option, pub icon_url: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedFieldUdt { pub name: Option, pub value: Option, #[cfg_attr(feature = "scylla", scylla(rename = "inline"))] pub is_inline: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedFooterUdt { pub text: Option, pub icon_url: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedMediaUdt { pub url: Option, pub width: Option, pub height: Option, pub duration: Option, pub description: Option, pub content_type: Option, pub content_hash: Option, pub placeholder: Option, pub flags: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedProviderUdt { pub name: Option, pub url: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedChildUdt { #[cfg_attr(feature = "scylla", scylla(rename = "type"))] pub embed_type: Option, pub title: Option, pub description: Option, pub url: Option, pub timestamp: Option>, pub color: Option, pub author: Option, pub provider: Option, pub thumbnail: Option, pub image: Option, pub video: Option, pub footer: Option, pub fields: Option>, pub nsfw: Option, pub audio: Option, pub html: Option, pub html_width: Option, pub html_height: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct EmbedUdt { #[cfg_attr(feature = "scylla", scylla(rename = "type"))] pub embed_type: Option, pub title: Option, pub description: Option, pub url: Option, pub timestamp: Option>, pub color: Option, pub author: Option, pub provider: Option, pub thumbnail: Option, pub image: Option, pub video: Option, pub footer: Option, pub fields: Option>, pub nsfw: Option, pub children: Option>, pub audio: Option, pub html: Option, pub html_width: Option, pub html_height: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct StickerItemUdt { pub sticker_id: Option, pub name: Option, pub format_type: Option, pub animated: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MessageReferenceUdt { pub channel_id: Option, pub message_id: Option, pub guild_id: Option, #[cfg_attr(feature = "scylla", scylla(rename = "type"))] pub reference_type: Option, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MessageCallUdt { pub participant_ids: Option>, pub ended_timestamp: Option>, } #[cfg_attr( feature = "scylla", derive(scylla::DeserializeValue, scylla::SerializeValue) )] #[derive(Debug, Clone, Serialize, Deserialize)] pub struct MessageSnapshotUdt { pub content: Option, pub timestamp: Option>, pub edited_timestmap: Option>, pub mention_users: Option>, pub mention_roles: Option>, pub mention_channels: Option>, pub attachments: Option>, pub embeds: Option>, pub sticker_items: Option>, #[cfg_attr(feature = "scylla", scylla(rename = "type"))] pub snapshot_type: Option, pub flags: Option, pub edited_timestamp: Option>, }