use crate::deserializer::*;
use crate::serializer::*;
use derive_builder::Builder;
use discord_client_macros::CreatedAt;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Builder, Default, CreatedAt)]
#[builder(setter(into, strip_option), default)]
pub struct Summary {
#[serde(rename = "unsafe")]
pub is_unsafe: bool,
pub r#type: u8,
pub topic: String,
pub summ_short: String,
#[serde(deserialize_with = "deserialize_string_to_u64")]
#[serde(serialize_with = "serialize_u64_as_string")]
pub start_id: u64,
pub source: u8,
#[serde(deserialize_with = "deserialize_string_to_vec_u64")]
#[serde(serialize_with = "serialize_vec_u64_as_string")]
pub people: Vec<u64>,
#[serde(deserialize_with = "deserialize_string_to_u64")]
#[serde(serialize_with = "serialize_u64_as_string")]
pub id: u64,
#[serde(deserialize_with = "deserialize_string_to_u64")]
#[serde(serialize_with = "serialize_u64_as_string")]
pub end_id: u64,
pub count: u32,
#[serde(deserialize_with = "deserialize_string_to_vec_u64")]
#[serde(serialize_with = "serialize_vec_u64_as_string")]
pub message_ids: Vec<u64>,
}