use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Event {
#[serde(rename = "id")]
pub id: String,
#[serde(rename = "type", deserialize_with = "Option::deserialize")]
pub r#type: Option<String>,
#[serde(rename = "actor")]
pub actor: Box<models::Actor>,
#[serde(rename = "repo")]
pub repo: Box<models::EventRepo>,
#[serde(rename = "org", skip_serializing_if = "Option::is_none")]
pub org: Option<Box<models::Actor>>,
#[serde(rename = "payload")]
pub payload: Box<models::EventPayload>,
#[serde(rename = "public")]
pub public: bool,
#[serde(rename = "created_at", deserialize_with = "Option::deserialize")]
pub created_at: Option<String>,
}
impl Event {
pub fn new(id: String, r#type: Option<String>, actor: models::Actor, repo: models::EventRepo, payload: models::EventPayload, public: bool, created_at: Option<String>) -> Event {
Event {
id,
r#type,
actor: Box::new(actor),
repo: Box::new(repo),
org: None,
payload: Box::new(payload),
public,
created_at,
}
}
}