#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
pub struct UpdateDealProductRequest {
#[serde(rename = "product_id", skip_serializing_if = "Option::is_none")]
pub product_id: Option<i32>,
#[serde(rename = "item_price", skip_serializing_if = "Option::is_none")]
pub item_price: Option<f32>,
#[serde(rename = "quantity", skip_serializing_if = "Option::is_none")]
pub quantity: Option<i32>,
#[serde(rename = "discount", skip_serializing_if = "Option::is_none")]
pub discount: Option<f32>,
#[serde(rename = "discount_type", skip_serializing_if = "Option::is_none")]
pub discount_type: Option<DiscountType>,
#[serde(rename = "duration", skip_serializing_if = "Option::is_none")]
pub duration: Option<f32>,
#[serde(rename = "duration_unit", skip_serializing_if = "Option::is_none")]
pub duration_unit: Option<DurationUnit>,
#[serde(rename = "product_variation_id", skip_serializing_if = "Option::is_none")]
pub product_variation_id: Option<i32>,
#[serde(rename = "comments", skip_serializing_if = "Option::is_none")]
pub comments: Option<String>,
#[serde(rename = "tax", skip_serializing_if = "Option::is_none")]
pub tax: Option<f32>,
#[serde(rename = "tax_method", skip_serializing_if = "Option::is_none")]
pub tax_method: Option<TaxMethod>,
#[serde(rename = "enabled_flag", skip_serializing_if = "Option::is_none")]
pub enabled_flag: Option<bool>,
}
impl UpdateDealProductRequest {
pub fn new() -> UpdateDealProductRequest {
UpdateDealProductRequest {
product_id: None,
item_price: None,
quantity: None,
discount: None,
discount_type: None,
duration: None,
duration_unit: None,
product_variation_id: None,
comments: None,
tax: None,
tax_method: None,
enabled_flag: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DiscountType {
#[serde(rename = "percentage")]
Percentage,
#[serde(rename = "amount")]
Amount,
}
impl Default for DiscountType {
fn default() -> DiscountType {
Self::Percentage
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum DurationUnit {
#[serde(rename = "hourly")]
Hourly,
#[serde(rename = "daily")]
Daily,
#[serde(rename = "weekly")]
Weekly,
#[serde(rename = "monthly")]
Monthly,
#[serde(rename = "yearly")]
Yearly,
}
impl Default for DurationUnit {
fn default() -> DurationUnit {
Self::Hourly
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum TaxMethod {
#[serde(rename = "exclusive")]
Exclusive,
#[serde(rename = "inclusive")]
Inclusive,
#[serde(rename = "none")]
None,
}
impl Default for TaxMethod {
fn default() -> TaxMethod {
Self::Exclusive
}
}