use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(untagged)]
pub enum Price {
OneTimePrice(Box<models::OneTimePrice>),
RecurringPrice(Box<models::RecurringPrice>),
UsageBasedPrice(Box<models::UsageBasedPrice>),
}
impl Default for Price {
fn default() -> Self {
Self::OneTimePrice(Default::default())
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Type {
#[serde(rename = "one_time_price")]
OneTimePrice,
#[serde(rename = "recurring_price")]
RecurringPrice,
#[serde(rename = "usage_based_price")]
UsageBasedPrice,
}
impl Default for Type {
fn default() -> Type {
Self::OneTimePrice
}
}