use serde::{Deserialize, Serialize};
use crate::client::{Client, Response};
use crate::ids::TerminalConfigurationId;
use crate::params::{Expand, Expandable, List, Object, Paginable};
use crate::resources::File;
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TerminalConfiguration {
pub id: TerminalConfigurationId,
#[serde(skip_serializing_if = "Option::is_none")]
pub bbpos_wisepos_e: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
#[serde(default)]
pub deleted: bool,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_account_default: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub livemode: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub offline: Option<TerminalConfigurationConfigurationResourceOfflineConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tipping: Option<TerminalConfigurationConfigurationResourceTipping>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verifone_p400: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
}
impl TerminalConfiguration {
pub fn list(
client: &Client,
params: &ListTerminalConfigurations<'_>,
) -> Response<List<TerminalConfiguration>> {
client.get_query("/terminal/configurations", params)
}
pub fn create(
client: &Client,
params: CreateTerminalConfiguration<'_>,
) -> Response<TerminalConfiguration> {
#[allow(clippy::needless_borrows_for_generic_args)]
client.post_form("/terminal/configurations", ¶ms)
}
}
impl Object for TerminalConfiguration {
type Id = TerminalConfigurationId;
fn id(&self) -> Self::Id {
self.id.clone()
}
fn object(&self) -> &'static str {
"terminal.configuration"
}
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub splashscreen: Option<Expandable<File>>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TerminalConfigurationConfigurationResourceOfflineConfig {
pub enabled: Option<bool>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TerminalConfigurationConfigurationResourceTipping {
#[serde(skip_serializing_if = "Option::is_none")]
pub aud: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cad: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub chf: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub czk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dkk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eur: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gbp: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hkd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub myr: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nok: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nzd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sek: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sgd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
#[serde(skip_serializing_if = "Option::is_none")]
pub usd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct TerminalConfigurationConfigurationResourceCurrencySpecificConfig {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Serialize, Default)]
pub struct CreateTerminalConfiguration<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub bbpos_wisepos_e: Option<CreateTerminalConfigurationBbposWiseposE>,
#[serde(skip_serializing_if = "Expand::is_empty")]
pub expand: &'a [&'a str],
#[serde(skip_serializing_if = "Option::is_none")]
pub offline: Option<CreateTerminalConfigurationOffline>,
#[serde(skip_serializing_if = "Option::is_none")]
pub tipping: Option<CreateTerminalConfigurationTipping>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verifone_p400: Option<CreateTerminalConfigurationVerifoneP400>,
}
impl<'a> CreateTerminalConfiguration<'a> {
pub fn new() -> Self {
CreateTerminalConfiguration {
bbpos_wisepos_e: Default::default(),
expand: Default::default(),
offline: Default::default(),
tipping: Default::default(),
verifone_p400: Default::default(),
}
}
}
#[derive(Clone, Debug, Serialize, Default)]
pub struct ListTerminalConfigurations<'a> {
#[serde(skip_serializing_if = "Option::is_none")]
pub ending_before: Option<TerminalConfigurationId>,
#[serde(skip_serializing_if = "Expand::is_empty")]
pub expand: &'a [&'a str],
#[serde(skip_serializing_if = "Option::is_none")]
pub is_account_default: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub limit: Option<u64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub starting_after: Option<TerminalConfigurationId>,
}
impl<'a> ListTerminalConfigurations<'a> {
pub fn new() -> Self {
ListTerminalConfigurations {
ending_before: Default::default(),
expand: Default::default(),
is_account_default: Default::default(),
limit: Default::default(),
starting_after: Default::default(),
}
}
}
impl Paginable for ListTerminalConfigurations<'_> {
type O = TerminalConfiguration;
fn set_last(&mut self, item: Self::O) {
self.starting_after = Some(item.id());
}
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationBbposWiseposE {
#[serde(skip_serializing_if = "Option::is_none")]
pub splashscreen: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationOffline {
pub enabled: bool,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTipping {
#[serde(skip_serializing_if = "Option::is_none")]
pub aud: Option<CreateTerminalConfigurationTippingAud>,
#[serde(skip_serializing_if = "Option::is_none")]
pub cad: Option<CreateTerminalConfigurationTippingCad>,
#[serde(skip_serializing_if = "Option::is_none")]
pub chf: Option<CreateTerminalConfigurationTippingChf>,
#[serde(skip_serializing_if = "Option::is_none")]
pub czk: Option<CreateTerminalConfigurationTippingCzk>,
#[serde(skip_serializing_if = "Option::is_none")]
pub dkk: Option<CreateTerminalConfigurationTippingDkk>,
#[serde(skip_serializing_if = "Option::is_none")]
pub eur: Option<CreateTerminalConfigurationTippingEur>,
#[serde(skip_serializing_if = "Option::is_none")]
pub gbp: Option<CreateTerminalConfigurationTippingGbp>,
#[serde(skip_serializing_if = "Option::is_none")]
pub hkd: Option<CreateTerminalConfigurationTippingHkd>,
#[serde(skip_serializing_if = "Option::is_none")]
pub myr: Option<CreateTerminalConfigurationTippingMyr>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nok: Option<CreateTerminalConfigurationTippingNok>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nzd: Option<CreateTerminalConfigurationTippingNzd>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sek: Option<CreateTerminalConfigurationTippingSek>,
#[serde(skip_serializing_if = "Option::is_none")]
pub sgd: Option<CreateTerminalConfigurationTippingSgd>,
#[serde(skip_serializing_if = "Option::is_none")]
pub usd: Option<CreateTerminalConfigurationTippingUsd>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationVerifoneP400 {
#[serde(skip_serializing_if = "Option::is_none")]
pub splashscreen: Option<String>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingAud {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingCad {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingChf {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingCzk {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingDkk {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingEur {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingGbp {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingHkd {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingMyr {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingNok {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingNzd {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingSek {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingSgd {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct CreateTerminalConfigurationTippingUsd {
#[serde(skip_serializing_if = "Option::is_none")]
pub fixed_amounts: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub percentages: Option<Vec<i64>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub smart_tip_threshold: Option<i64>,
}