use crate::deserializer::*;
use crate::serializer::*;
use chrono::{DateTime, Utc};
use derive_builder::Builder;
use serde::{Deserialize, Serialize};
#[derive(Debug, Deserialize, Serialize, Clone, Builder, Default)]
#[builder(setter(into, strip_option), default)]
pub struct MessageCall {
#[serde(deserialize_with = "deserialize_string_to_vec_u64")]
#[serde(serialize_with = "serialize_vec_u64_as_string")]
pub participants: Vec<u64>,
#[serde(default)]
#[serde(deserialize_with = "deserialize_option_iso8601_string_to_date")]
#[serde(serialize_with = "serialize_option_date_to_iso8601_string")]
pub ended_timestamp: Option<DateTime<Utc>>,
}