use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct StartSmsRegistrationRequestBrand {
#[serde(rename = "entityType")]
pub entity_type: EntityType,
#[serde(rename = "displayName")]
pub display_name: String,
#[serde(rename = "companyName", skip_serializing_if = "Option::is_none")]
pub company_name: Option<String>,
#[serde(rename = "ein", skip_serializing_if = "Option::is_none")]
pub ein: Option<String>,
#[serde(rename = "phone", skip_serializing_if = "Option::is_none")]
pub phone: Option<String>,
#[serde(rename = "mobilePhone", skip_serializing_if = "Option::is_none")]
pub mobile_phone: Option<String>,
#[serde(rename = "street")]
pub street: String,
#[serde(rename = "city")]
pub city: String,
#[serde(rename = "state")]
pub state: String,
#[serde(rename = "postalCode")]
pub postal_code: String,
#[serde(rename = "country")]
pub country: Country,
#[serde(rename = "email", skip_serializing_if = "Option::is_none")]
pub email: Option<String>,
#[serde(rename = "website")]
pub website: String,
#[serde(rename = "vertical")]
pub vertical: Vertical,
#[serde(rename = "stockSymbol", skip_serializing_if = "Option::is_none")]
pub stock_symbol: Option<String>,
}
impl StartSmsRegistrationRequestBrand {
pub fn new(
entity_type: EntityType,
display_name: String,
street: String,
city: String,
state: String,
postal_code: String,
country: Country,
website: String,
vertical: Vertical,
) -> StartSmsRegistrationRequestBrand {
StartSmsRegistrationRequestBrand {
entity_type,
display_name,
company_name: None,
ein: None,
phone: None,
mobile_phone: None,
street,
city,
state,
postal_code,
country,
email: None,
website,
vertical,
stock_symbol: None,
}
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum EntityType {
#[serde(rename = "PRIVATE_PROFIT")]
PrivateProfit,
#[serde(rename = "PUBLIC_PROFIT")]
PublicProfit,
#[serde(rename = "NON_PROFIT")]
NonProfit,
#[serde(rename = "GOVERNMENT")]
Government,
#[serde(rename = "SOLE_PROPRIETOR")]
SoleProprietor,
}
impl Default for EntityType {
fn default() -> EntityType {
Self::PrivateProfit
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Country {
#[serde(rename = "US")]
Us,
#[serde(rename = "CA")]
Ca,
}
impl Default for Country {
fn default() -> Country {
Self::Us
}
}
#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
pub enum Vertical {
#[serde(rename = "AGRICULTURE")]
Agriculture,
#[serde(rename = "COMMUNICATION")]
Communication,
#[serde(rename = "CONSTRUCTION")]
Construction,
#[serde(rename = "EDUCATION")]
Education,
#[serde(rename = "ENERGY")]
Energy,
#[serde(rename = "ENTERTAINMENT")]
Entertainment,
#[serde(rename = "FINANCIAL")]
Financial,
#[serde(rename = "GAMBLING")]
Gambling,
#[serde(rename = "GOVERNMENT")]
Government,
#[serde(rename = "HEALTHCARE")]
Healthcare,
#[serde(rename = "HOSPITALITY")]
Hospitality,
#[serde(rename = "HUMAN_RESOURCES")]
HumanResources,
#[serde(rename = "INSURANCE")]
Insurance,
#[serde(rename = "LEGAL")]
Legal,
#[serde(rename = "MANUFACTURING")]
Manufacturing,
#[serde(rename = "NGO")]
Ngo,
#[serde(rename = "POLITICAL")]
Political,
#[serde(rename = "POSTAL")]
Postal,
#[serde(rename = "PROFESSIONAL")]
Professional,
#[serde(rename = "REAL_ESTATE")]
RealEstate,
#[serde(rename = "RETAIL")]
Retail,
#[serde(rename = "TECHNOLOGY")]
Technology,
#[serde(rename = "TRANSPORTATION")]
Transportation,
}
impl Default for Vertical {
fn default() -> Vertical {
Self::Agriculture
}
}