use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct RecyclingState {
#[serde(rename = "enabled", skip_serializing_if = "Option::is_none")]
pub enabled: Option<bool>,
#[serde(rename = "gap", skip_serializing_if = "Option::is_none")]
pub gap: Option<i32>,
#[serde(rename = "gapFreq", skip_serializing_if = "Option::is_none")]
pub gap_freq: Option<GapFreq>,
#[serde(rename = "startDate", skip_serializing_if = "Option::is_none")]
pub start_date: Option<String>,
#[serde(rename = "expireCount", skip_serializing_if = "Option::is_none")]
pub expire_count: Option<i32>,
#[serde(rename = "expireDate", skip_serializing_if = "Option::is_none")]
pub expire_date: Option<String>,
#[serde(rename = "contentVariations", skip_serializing_if = "Option::is_none")]
pub content_variations: Option<Vec<String>>,
#[serde(
rename = "contentVariationIndex",
skip_serializing_if = "Option::is_none"
)]
pub content_variation_index: Option<i32>,
#[serde(rename = "recycleCount", skip_serializing_if = "Option::is_none")]
pub recycle_count: Option<i32>,
#[serde(rename = "nextRecycleAt", skip_serializing_if = "Option::is_none")]
pub next_recycle_at: Option<String>,
#[serde(rename = "lastRecycledAt", skip_serializing_if = "Option::is_none")]
pub last_recycled_at: Option<String>,
}
impl RecyclingState {
pub fn new() -> RecyclingState {
RecyclingState {
enabled: None,
gap: None,
gap_freq: None,
start_date: None,
expire_count: None,
expire_date: None,
content_variations: None,
content_variation_index: None,
recycle_count: None,
next_recycle_at: None,
last_recycled_at: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum GapFreq {
#[serde(rename = "week")]
Week,
#[serde(rename = "month")]
Month,
}
impl Default for GapFreq {
fn default() -> GapFreq {
Self::Week
}
}