use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Activity {
#[serde(rename = "id")]
pub id: i32,
#[serde(rename = "node_id")]
pub node_id: String,
#[serde(rename = "before")]
pub before: String,
#[serde(rename = "after")]
pub after: String,
#[serde(rename = "ref")]
pub r#ref: String,
#[serde(rename = "timestamp")]
pub timestamp: String,
#[serde(rename = "activity_type")]
pub activity_type: ActivityType,
#[serde(rename = "actor", deserialize_with = "Option::deserialize")]
pub actor: Option<Box<models::NullableSimpleUser>>,
}
impl Activity {
pub fn new(id: i32, node_id: String, before: String, after: String, r#ref: String, timestamp: String, activity_type: ActivityType, actor: Option<models::NullableSimpleUser>) -> Activity {
Activity {
id,
node_id,
before,
after,
r#ref,
timestamp,
activity_type,
actor: actor.map(Box::new),
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum ActivityType {
#[serde(rename = "push")]
Push,
#[serde(rename = "force_push")]
ForcePush,
#[serde(rename = "branch_deletion")]
BranchDeletion,
#[serde(rename = "branch_creation")]
BranchCreation,
#[serde(rename = "pr_merge")]
PrMerge,
#[serde(rename = "merge_queue_merge")]
MergeQueueMerge,
}
impl Default for ActivityType {
fn default() -> ActivityType {
Self::Push
}
}