use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Webhook {
#[serde(rename = "_id", skip_serializing_if = "Option::is_none")]
pub _id: Option<String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "url", skip_serializing_if = "Option::is_none")]
pub url: Option<String>,
#[serde(rename = "secret", skip_serializing_if = "Option::is_none")]
pub secret: Option<String>,
#[serde(rename = "events", skip_serializing_if = "Option::is_none")]
pub events: Option<Vec<Events>>,
#[serde(rename = "isActive", skip_serializing_if = "Option::is_none")]
pub is_active: Option<bool>,
#[serde(rename = "lastFiredAt", skip_serializing_if = "Option::is_none")]
pub last_fired_at: Option<String>,
#[serde(rename = "failureCount", skip_serializing_if = "Option::is_none")]
pub failure_count: Option<i32>,
#[serde(rename = "customHeaders", skip_serializing_if = "Option::is_none")]
pub custom_headers: Option<std::collections::HashMap<String, String>>,
}
impl Webhook {
pub fn new() -> Webhook {
Webhook {
_id: None,
name: None,
url: None,
secret: None,
events: None,
is_active: None,
last_fired_at: None,
failure_count: None,
custom_headers: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Events {
#[serde(rename = "post.scheduled")]
PostScheduled,
#[serde(rename = "post.published")]
PostPublished,
#[serde(rename = "post.failed")]
PostFailed,
#[serde(rename = "post.partial")]
PostPartial,
#[serde(rename = "post.cancelled")]
PostCancelled,
#[serde(rename = "post.recycled")]
PostRecycled,
#[serde(rename = "account.connected")]
AccountConnected,
#[serde(rename = "account.disconnected")]
AccountDisconnected,
#[serde(rename = "message.received")]
MessageReceived,
#[serde(rename = "message.sent")]
MessageSent,
#[serde(rename = "message.edited")]
MessageEdited,
#[serde(rename = "message.deleted")]
MessageDeleted,
#[serde(rename = "message.delivered")]
MessageDelivered,
#[serde(rename = "message.read")]
MessageRead,
#[serde(rename = "message.failed")]
MessageFailed,
#[serde(rename = "comment.received")]
CommentReceived,
}
impl Default for Events {
fn default() -> Events {
Self::PostScheduled
}
}