use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct DeliveryResponse {
#[serde(rename = "attempts")]
pub attempts: i32,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "delivered_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub delivered_at: Option<Option<String>>,
#[serde(rename = "event")]
pub event: String,
#[serde(rename = "id")]
pub id: uuid::Uuid,
#[serde(rename = "payload")]
pub payload: serde_json::Value,
#[serde(rename = "response_body", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub response_body: Option<Option<String>>,
#[serde(rename = "response_status", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
pub response_status: Option<Option<i32>>,
#[serde(rename = "success")]
pub success: bool,
#[serde(rename = "webhook_id")]
pub webhook_id: uuid::Uuid,
}
impl DeliveryResponse {
pub fn new(attempts: i32, created_at: String, event: String, id: uuid::Uuid, payload: serde_json::Value, success: bool, webhook_id: uuid::Uuid) -> DeliveryResponse {
DeliveryResponse {
attempts,
created_at,
delivered_at: None,
event,
id,
payload,
response_body: None,
response_status: None,
success,
webhook_id,
}
}
}