use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Account {
#[serde(rename = "marketplaceParticipationList")]
pub marketplace_participation_list: Vec<models::sellers::MarketplaceParticipation>,
#[serde(rename = "businessType")]
pub business_type: BusinessType,
#[serde(rename = "sellingPlan")]
pub selling_plan: SellingPlan,
#[serde(rename = "business", skip_serializing_if = "Option::is_none")]
pub business: Option<Box<models::sellers::Business>>,
#[serde(rename = "primaryContact", skip_serializing_if = "Option::is_none")]
pub primary_contact: Option<Box<models::sellers::PrimaryContact>>,
}
impl Account {
pub fn new(marketplace_participation_list: Vec<models::sellers::MarketplaceParticipation>, business_type: BusinessType, selling_plan: SellingPlan) -> Account {
Account {
marketplace_participation_list,
business_type,
selling_plan,
business: None,
primary_contact: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum BusinessType {
#[serde(rename = "CHARITY")]
Charity,
#[serde(rename = "CRAFTSMAN")]
Craftsman,
#[serde(rename = "NATURAL_PERSON_COMPANY")]
NaturalPersonCompany,
#[serde(rename = "PUBLIC_LISTED")]
PublicListed,
#[serde(rename = "PRIVATE_LIMITED")]
PrivateLimited,
#[serde(rename = "SOLE_PROPRIETORSHIP")]
SoleProprietorship,
#[serde(rename = "STATE_OWNED")]
StateOwned,
#[serde(rename = "INDIVIDUAL")]
Individual,
}
impl Default for BusinessType {
fn default() -> BusinessType {
Self::Charity
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum SellingPlan {
#[serde(rename = "PROFESSIONAL")]
Professional,
#[serde(rename = "INDIVIDUAL")]
Individual,
}
impl Default for SellingPlan {
fn default() -> SellingPlan {
Self::Professional
}
}