use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct WebhookPayloadPost {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "event")]
pub event: Event,
#[serde(rename = "post")]
pub post: Box<models::WebhookPayloadPostPost>,
#[serde(rename = "timestamp")]
pub timestamp: String,
}
impl WebhookPayloadPost {
pub fn new(
id: String,
event: Event,
post: models::WebhookPayloadPostPost,
timestamp: String,
) -> WebhookPayloadPost {
WebhookPayloadPost {
id,
event,
post: Box::new(post),
timestamp,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Event {
#[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,
}
impl Default for Event {
fn default() -> Event {
Self::PostScheduled
}
}