use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct CreateProductRequest {
#[serde(rename = "addons", skip_serializing_if = "Option::is_none")]
pub addons: Option<Vec<String>>,
#[serde(rename = "brand_id", skip_serializing_if = "Option::is_none")]
pub brand_id: Option<String>,
#[serde(rename = "credit_entitlements", skip_serializing_if = "Option::is_none")]
pub credit_entitlements: Option<Vec<models::AttachCreditEntitlementRequest>>,
#[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::CreateDigitalProductDeliveryRequest>>,
#[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", skip_serializing_if = "Option::is_none")]
pub license_key_enabled: Option<bool>,
#[serde(rename = "metadata", skip_serializing_if = "Option::is_none")]
pub metadata: Option<std::collections::HashMap<String, String>>,
#[serde(rename = "name")]
pub name: String,
#[serde(rename = "price")]
pub price: Box<models::Price>,
#[serde(rename = "tax_category")]
pub tax_category: models::TaxCategory,
}
impl CreateProductRequest {
pub fn new(name: String, price: models::Price, tax_category: models::TaxCategory) -> CreateProductRequest {
CreateProductRequest {
addons: None,
brand_id: None,
credit_entitlements: None,
description: None,
digital_product_delivery: None,
license_key_activation_message: None,
license_key_activations_limit: None,
license_key_duration: None,
license_key_enabled: None,
metadata: None,
name,
price: Box::new(price),
tax_category,
}
}
}