use crate::gen::manager::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum MetricTimeRange {
#[serde(rename = "TODAY")]
Today,
#[serde(rename = "YESTERDAY")]
Yesterday,
#[serde(rename = "LAST_DAY")]
LastDay,
#[serde(rename = "LAST_24_HOURS")]
Last24Hours,
#[serde(rename = "LAST_3_DAYS")]
Last3Days,
#[serde(rename = "LAST_7_DAYS")]
Last7Days,
#[serde(rename = "LAST_30_DAYS")]
Last30Days,
#[serde(rename = "THIS_WEEK")]
ThisWeek,
#[serde(rename = "PREVIOUS_WEEK")]
PreviousWeek,
#[serde(rename = "THIS_MONTH")]
ThisMonth,
#[serde(rename = "PREVIOUS_MONTH")]
PreviousMonth,
#[serde(rename = "LAST_3_MONTHS")]
Last3Months,
#[serde(rename = "THIS_QUARTER")]
ThisQuarter,
#[serde(rename = "PREVIOUS_QUARTER")]
PreviousQuarter,
}
impl std::fmt::Display for MetricTimeRange {
fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
match self {
Self::Today => write!(f, "TODAY"),
Self::Yesterday => write!(f, "YESTERDAY"),
Self::LastDay => write!(f, "LAST_DAY"),
Self::Last24Hours => write!(f, "LAST_24_HOURS"),
Self::Last3Days => write!(f, "LAST_3_DAYS"),
Self::Last7Days => write!(f, "LAST_7_DAYS"),
Self::Last30Days => write!(f, "LAST_30_DAYS"),
Self::ThisWeek => write!(f, "THIS_WEEK"),
Self::PreviousWeek => write!(f, "PREVIOUS_WEEK"),
Self::ThisMonth => write!(f, "THIS_MONTH"),
Self::PreviousMonth => write!(f, "PREVIOUS_MONTH"),
Self::Last3Months => write!(f, "LAST_3_MONTHS"),
Self::ThisQuarter => write!(f, "THIS_QUARTER"),
Self::PreviousQuarter => write!(f, "PREVIOUS_QUARTER"),
}
}
}
impl Default for MetricTimeRange {
fn default() -> MetricTimeRange {
Self::Today
}
}