use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct UsageStats {
#[serde(rename = "billingSystem", skip_serializing_if = "Option::is_none")]
pub billing_system: Option<BillingSystem>,
#[serde(rename = "planName", skip_serializing_if = "Option::is_none")]
pub plan_name: Option<String>,
#[serde(rename = "billingPeriod", skip_serializing_if = "Option::is_none")]
pub billing_period: Option<BillingPeriod>,
#[serde(rename = "signupDate", skip_serializing_if = "Option::is_none")]
pub signup_date: Option<String>,
#[serde(rename = "billingAnchorDay", skip_serializing_if = "Option::is_none")]
pub billing_anchor_day: Option<i32>,
#[serde(rename = "hasAccess", skip_serializing_if = "Option::is_none")]
pub has_access: Option<bool>,
#[serde(rename = "customerId", skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(rename = "isInvitedUser", skip_serializing_if = "Option::is_none")]
pub is_invited_user: Option<bool>,
#[serde(rename = "autoUpgradeEnabled", skip_serializing_if = "Option::is_none")]
pub auto_upgrade_enabled: Option<bool>,
#[serde(rename = "limits", skip_serializing_if = "Option::is_none")]
pub limits: Option<Box<models::UsageStatsLimits>>,
#[serde(rename = "usage", skip_serializing_if = "Option::is_none")]
pub usage: Option<Box<models::UsageStatsUsage>>,
#[serde(rename = "spend", skip_serializing_if = "Option::is_none")]
pub spend: Option<Box<models::UsageStatsSpend>>,
}
impl UsageStats {
pub fn new() -> UsageStats {
UsageStats {
billing_system: None,
plan_name: None,
billing_period: None,
signup_date: None,
billing_anchor_day: None,
has_access: None,
customer_id: None,
is_invited_user: None,
auto_upgrade_enabled: None,
limits: None,
usage: None,
spend: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum BillingSystem {
#[serde(rename = "stripe")]
Stripe,
#[serde(rename = "metronome")]
Metronome,
}
impl Default for BillingSystem {
fn default() -> BillingSystem {
Self::Stripe
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum BillingPeriod {
#[serde(rename = "monthly")]
Monthly,
#[serde(rename = "yearly")]
Yearly,
}
impl Default for BillingPeriod {
fn default() -> BillingPeriod {
Self::Monthly
}
}