use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct GetProductResponse {
#[serde(rename = "addons", skip_serializing_if = "Option::is_none")]
pub addons: Option<Vec<String>>,
#[serde(rename = "brand_id")]
pub brand_id: String,
#[serde(rename = "business_id")]
pub business_id: String,
#[serde(rename = "created_at")]
pub created_at: String,
#[serde(rename = "credit_entitlements")]
pub credit_entitlements: Vec<models::CreditEntitlementMappingResponse>,
#[serde(rename = "description", skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(rename = "digital_product_delivery", skip_serializing_if = "Option::is_none")]
pub digital_product_delivery: Option<Box<models::DigitalProductDelivery>>,
#[serde(rename = "image", skip_serializing_if = "Option::is_none")]
pub image: Option<String>,
#[serde(rename = "is_recurring")]
pub is_recurring: bool,
#[serde(rename = "license_key_activation_message", skip_serializing_if = "Option::is_none")]
pub license_key_activation_message: Option<String>,
#[serde(rename = "license_key_activations_limit", skip_serializing_if = "Option::is_none")]
pub license_key_activations_limit: Option<i32>,
#[serde(rename = "license_key_duration", skip_serializing_if = "Option::is_none")]
pub license_key_duration: Option<Box<models::LicenseKeyDuration>>,
#[serde(rename = "license_key_enabled")]
pub license_key_enabled: bool,
#[serde(rename = "metadata")]
pub metadata: std::collections::HashMap<String, String>,
#[serde(rename = "name", skip_serializing_if = "Option::is_none")]
pub name: Option<String>,
#[serde(rename = "price")]
pub price: Box<models::Price>,
#[serde(rename = "product_collection_id", skip_serializing_if = "Option::is_none")]
pub product_collection_id: Option<String>,
#[serde(rename = "product_id")]
pub product_id: String,
#[serde(rename = "tax_category")]
pub tax_category: models::TaxCategory,
#[serde(rename = "updated_at")]
pub updated_at: String,
}
impl GetProductResponse {
pub fn new(brand_id: String, business_id: String, created_at: String, credit_entitlements: Vec<models::CreditEntitlementMappingResponse>, is_recurring: bool, license_key_enabled: bool, metadata: std::collections::HashMap<String, String>, price: models::Price, product_id: String, tax_category: models::TaxCategory, updated_at: String) -> GetProductResponse {
GetProductResponse {
addons: None,
brand_id,
business_id,
created_at,
credit_entitlements,
description: None,
digital_product_delivery: None,
image: None,
is_recurring,
license_key_activation_message: None,
license_key_activations_limit: None,
license_key_duration: None,
license_key_enabled,
metadata,
name: None,
price: Box::new(price),
product_collection_id: None,
product_id,
tax_category,
updated_at,
}
}
}