use serde::{Deserialize, Serialize};
use super::emoji::APIPartialEmoji;
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIBasePoll {
pub question: APIPollMedia,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPollDefaults {
pub allow_multiselect: bool,
pub layout_type: PollLayoutType,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPoll {
pub answers: Vec<APIPollAnswer>,
pub expiry: String,
pub results: Option<APIPollResults>,
pub question: APIPollMedia,
pub allow_multiselect: bool,
pub layout_type: PollLayoutType,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Serialize, Deserialize)]
pub enum PollLayoutType {
Default = 1,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPollMedia {
pub text: Option<String>,
pub emoji: Option<APIPartialEmoji>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIBasePollAnswer {
pub poll_media: APIPollMedia,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPollAnswer {
pub answer_id: i32,
pub poll_media: APIPollMedia,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPollResults {
pub is_finalized: bool,
pub answer_counts: Vec<APIPollAnswerCount>,
}
#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
pub struct APIPollAnswerCount {
pub id: i32,
pub count: i32,
pub me_voted: bool,
}