use serde::{Deserialize, Serialize};
use crate::models;
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct BillingSubscription {
#[serde(
rename = "trialStartDate",
alias = "TrialStartDate",
skip_serializing_if = "Option::is_none"
)]
pub trial_start_date: Option<String>,
#[serde(
rename = "trialEndDate",
alias = "TrialEndDate",
skip_serializing_if = "Option::is_none"
)]
pub trial_end_date: Option<String>,
#[serde(
rename = "periodStartDate",
alias = "PeriodStartDate",
skip_serializing_if = "Option::is_none"
)]
pub period_start_date: Option<String>,
#[serde(
rename = "periodEndDate",
alias = "PeriodEndDate",
skip_serializing_if = "Option::is_none"
)]
pub period_end_date: Option<String>,
#[serde(
rename = "cancelledDate",
alias = "CancelledDate",
skip_serializing_if = "Option::is_none"
)]
pub cancelled_date: Option<String>,
#[serde(
rename = "cancelAtEndDate",
alias = "CancelAtEndDate",
skip_serializing_if = "Option::is_none"
)]
pub cancel_at_end_date: Option<bool>,
#[serde(
rename = "status",
alias = "Status",
skip_serializing_if = "Option::is_none"
)]
pub status: Option<String>,
#[serde(
rename = "cancelled",
alias = "Cancelled",
skip_serializing_if = "Option::is_none"
)]
pub cancelled: Option<bool>,
#[serde(
rename = "items",
alias = "Items",
skip_serializing_if = "Option::is_none"
)]
pub items: Option<Vec<models::BillingSubscriptionItem>>,
#[serde(
rename = "collectionMethod",
alias = "CollectionMethod",
skip_serializing_if = "Option::is_none"
)]
pub collection_method: Option<String>,
#[serde(
rename = "suspensionDate",
alias = "SuspensionDate",
skip_serializing_if = "Option::is_none"
)]
pub suspension_date: Option<String>,
#[serde(
rename = "unpaidPeriodEndDate",
alias = "UnpaidPeriodEndDate",
skip_serializing_if = "Option::is_none"
)]
pub unpaid_period_end_date: Option<String>,
#[serde(
rename = "gracePeriod",
alias = "GracePeriod",
skip_serializing_if = "Option::is_none"
)]
pub grace_period: Option<i32>,
}
impl BillingSubscription {
pub fn new() -> BillingSubscription {
BillingSubscription {
trial_start_date: None,
trial_end_date: None,
period_start_date: None,
period_end_date: None,
cancelled_date: None,
cancel_at_end_date: None,
status: None,
cancelled: None,
items: None,
collection_method: None,
suspension_date: None,
unpaid_period_end_date: None,
grace_period: None,
}
}
}