use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Stats {
#[serde(rename = "total", skip_serializing_if = "Option::is_none")]
pub total: Option<i32>,
#[serde(rename = "completed", skip_serializing_if = "Option::is_none")]
pub completed: Option<i32>,
#[serde(rename = "metrics", skip_serializing_if = "Option::is_none")]
pub metrics: Option<std::collections::HashMap<String, i32>>,
#[serde(rename = "ongoing", skip_serializing_if = "Option::is_none")]
pub ongoing: Option<bool>,
#[serde(rename = "trigger", skip_serializing_if = "Option::is_none")]
pub trigger: Option<Trigger>,
}
impl Stats {
pub fn new() -> Stats {
Stats {
total: None,
completed: None,
metrics: None,
ongoing: None,
trigger: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Trigger {
#[serde(rename = "Manual")]
Manual,
#[serde(rename = "Schedule")]
Schedule,
#[serde(rename = "Event")]
Event,
}
impl Default for Trigger {
fn default() -> Trigger {
Self::Manual
}
}