use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateSubscriptionResponse {
#[serde(rename = "addons")]
pub addons: Vec<models::AddonCartResponseItem>,
#[serde(rename = "client_secret", skip_serializing_if = "Option::is_none")]
pub client_secret: Option<String>,
#[serde(rename = "customer")]
pub customer: Box<models::CustomerLimitedDetailsResponse>,
#[serde(rename = "discount_id", skip_serializing_if = "Option::is_none")]
pub discount_id: Option<String>,
#[serde(rename = "expires_on", skip_serializing_if = "Option::is_none")]
pub expires_on: Option<String>,
#[serde(rename = "metadata")]
pub metadata: std::collections::HashMap<String, String>,
#[serde(rename = "one_time_product_cart", skip_serializing_if = "Option::is_none")]
pub one_time_product_cart: Option<Vec<models::OneTimeProductCartItemResponse>>,
#[serde(rename = "payment_id")]
pub payment_id: String,
#[serde(rename = "payment_link", skip_serializing_if = "Option::is_none")]
pub payment_link: Option<String>,
#[serde(rename = "recurring_pre_tax_amount")]
pub recurring_pre_tax_amount: i32,
#[serde(rename = "subscription_id")]
pub subscription_id: String,
}
impl CreateSubscriptionResponse {
pub fn new(addons: Vec<models::AddonCartResponseItem>, customer: models::CustomerLimitedDetailsResponse, metadata: std::collections::HashMap<String, String>, payment_id: String, recurring_pre_tax_amount: i32, subscription_id: String) -> CreateSubscriptionResponse {
CreateSubscriptionResponse {
addons,
client_secret: None,
customer: Box::new(customer),
discount_id: None,
expires_on: None,
metadata,
one_time_product_cart: None,
payment_id,
payment_link: None,
recurring_pre_tax_amount,
subscription_id,
}
}
}