use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WebhookPayloadMessage {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "event")]
pub event: Event,
#[serde(rename = "message")]
pub message: Box<models::WebhookPayloadMessageMessage>,
#[serde(rename = "conversation")]
pub conversation: Box<models::WebhookPayloadMessageConversation>,
#[serde(rename = "account")]
pub account: Box<models::WebhookPayloadMessageAccount>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<Box<models::WebhookPayloadMessageMetadata>>,
#[serde(rename = "timestamp")]
pub timestamp: String,
}
impl WebhookPayloadMessage {
pub fn new(
id: String,
event: Event,
message: models::WebhookPayloadMessageMessage,
conversation: models::WebhookPayloadMessageConversation,
account: models::WebhookPayloadMessageAccount,
timestamp: String,
) -> WebhookPayloadMessage {
WebhookPayloadMessage {
id,
event,
message: Box::new(message),
conversation: Box::new(conversation),
account: Box::new(account),
metadata: None,
timestamp,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Event {
#[serde(rename = "message.received")]
MessageReceived,
}
impl Default for Event {
fn default() -> Event {
Self::MessageReceived
}
}