use serde::{Deserialize, Serialize};
use super::{message_status::MessageStatus, message_status_text::MessageStatusText};
#[derive(Clone, Debug, PartialEq, Deserialize, Serialize)]
pub struct MessageEndpointOut {
pub id: String,
pub status: MessageStatus,
#[serde(rename = "statusText")]
pub status_text: MessageStatusText,
#[serde(rename = "nextAttempt")]
#[serde(skip_serializing_if = "Option::is_none")]
pub next_attempt: Option<chrono::DateTime<chrono::Utc>>,
pub url: String,
pub description: String,
#[serde(rename = "throttleRate")]
#[serde(skip_serializing_if = "Option::is_none")]
pub throttle_rate: Option<u16>,
#[serde(skip_serializing_if = "Option::is_none")]
pub uid: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub disabled: Option<bool>,
#[serde(rename = "eventTypes")]
#[serde(skip_serializing_if = "Option::is_none")]
pub event_types: Option<std::collections::BTreeSet<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub channels: Option<std::collections::BTreeSet<String>>,
#[serde(rename = "createdAt")]
pub created_at: chrono::DateTime<chrono::Utc>,
#[serde(rename = "updatedAt")]
pub updated_at: chrono::DateTime<chrono::Utc>,
}