use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Context {
#[serde(rename = "storeName", skip_serializing_if = "Option::is_none")]
pub store_name: Option<StoreName>,
#[serde(rename = "orderType", skip_serializing_if = "Option::is_none")]
pub order_type: Option<String>,
#[serde(rename = "channel", skip_serializing_if = "Option::is_none")]
pub channel: Option<String>,
#[serde(rename = "asin", skip_serializing_if = "Option::is_none")]
pub asin: Option<String>,
#[serde(rename = "sku", skip_serializing_if = "Option::is_none")]
pub sku: Option<String>,
#[serde(rename = "quantityShipped", skip_serializing_if = "Option::is_none")]
pub quantity_shipped: Option<i32>,
#[serde(rename = "fulfillmentNetwork", skip_serializing_if = "Option::is_none")]
pub fulfillment_network: Option<String>,
#[serde(rename = "paymentType", skip_serializing_if = "Option::is_none")]
pub payment_type: Option<String>,
#[serde(rename = "paymentMethod", skip_serializing_if = "Option::is_none")]
pub payment_method: Option<String>,
#[serde(rename = "paymentReference", skip_serializing_if = "Option::is_none")]
pub payment_reference: Option<String>,
#[serde(rename = "paymentDate", skip_serializing_if = "Option::is_none")]
pub payment_date: Option<String>,
#[serde(rename = "deferralReason", skip_serializing_if = "Option::is_none")]
pub deferral_reason: Option<String>,
#[serde(rename = "maturityDate", skip_serializing_if = "Option::is_none")]
pub maturity_date: Option<String>,
#[serde(rename = "startTime", skip_serializing_if = "Option::is_none")]
pub start_time: Option<String>,
#[serde(rename = "endTime", skip_serializing_if = "Option::is_none")]
pub end_time: Option<String>,
#[serde(rename = "contextType")]
pub context_type: String,
}
impl Context {
pub fn new(context_type: String) -> Context {
Context {
store_name: None,
order_type: None,
channel: None,
asin: None,
sku: None,
quantity_shipped: None,
fulfillment_network: None,
payment_type: None,
payment_method: None,
payment_reference: None,
payment_date: None,
deferral_reason: None,
maturity_date: None,
start_time: None,
end_time: None,
context_type,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum StoreName {
#[serde(rename = "AMAZON_HAUL")]
AmazonHaul,
}
impl Default for StoreName {
fn default() -> StoreName {
Self::AmazonHaul
}
}