use crate::model::embed::SerenityEmbed;
use serenity::all::{Message, RoleId, StickerId, UserId};
#[derive(serde::Deserialize, Clone)]
pub enum SerenityMessageMentionType {
Everyone,
Here,
Users(Vec<UserId>),
Roles(Vec<RoleId>),
Reply(Box<Message>), }
#[derive(serde::Deserialize, typed_builder::TypedBuilder, Clone)]
pub struct SerenityMessage {
#[builder(default, setter(strip_option, into))]
pub content: Option<String>,
#[builder(default, setter(strip_option, into))]
pub embeds: Option<Vec<SerenityEmbed>>,
#[builder(default = false, setter(into))]
pub tts: bool,
#[builder(default, setter(strip_option, into))]
pub mention_type: Option<SerenityMessageMentionType>,
#[builder(default, setter(strip_option, into))]
pub sticker_ids: Option<Vec<StickerId>>,
}