use serde::{Deserialize, Serialize};
use crate::ids::TerminalConfigurationId;
use crate::params::{Expandable, Object};
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 tipping: Option<TerminalConfigurationConfigurationResourceTipping>,
#[serde(skip_serializing_if = "Option::is_none")]
pub verifone_p400: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
}
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 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>,
}