1use crate::client::{Client, Response};
6use crate::ids::TerminalConfigurationId;
7use crate::params::{Expand, Expandable, List, Object, Paginable};
8use crate::resources::File;
9use serde::{Deserialize, Serialize};
10
11#[derive(Clone, Debug, Default, Deserialize, Serialize)]
15pub struct TerminalConfiguration {
16 pub id: TerminalConfigurationId,
18
19 #[serde(skip_serializing_if = "Option::is_none")]
20 pub bbpos_wisepos_e: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
21
22 #[serde(default)]
24 pub deleted: bool,
25
26 #[serde(skip_serializing_if = "Option::is_none")]
28 pub is_account_default: Option<bool>,
29
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub livemode: Option<bool>,
33
34 #[serde(skip_serializing_if = "Option::is_none")]
35 pub offline: Option<TerminalConfigurationConfigurationResourceOfflineConfig>,
36
37 #[serde(skip_serializing_if = "Option::is_none")]
38 pub tipping: Option<TerminalConfigurationConfigurationResourceTipping>,
39
40 #[serde(skip_serializing_if = "Option::is_none")]
41 pub verifone_p400: Option<TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig>,
42}
43
44impl TerminalConfiguration {
45 pub fn list(
47 client: &Client,
48 params: &ListTerminalConfigurations<'_>,
49 ) -> Response<List<TerminalConfiguration>> {
50 client.get_query("/terminal/configurations", params)
51 }
52
53 pub fn create(
55 client: &Client,
56 params: CreateTerminalConfiguration<'_>,
57 ) -> Response<TerminalConfiguration> {
58 #[allow(clippy::needless_borrows_for_generic_args)]
59 client.post_form("/terminal/configurations", ¶ms)
60 }
61}
62
63impl Object for TerminalConfiguration {
64 type Id = TerminalConfigurationId;
65 fn id(&self) -> Self::Id {
66 self.id.clone()
67 }
68 fn object(&self) -> &'static str {
69 "terminal.configuration"
70 }
71}
72
73#[derive(Clone, Debug, Default, Deserialize, Serialize)]
74pub struct TerminalConfigurationConfigurationResourceDeviceTypeSpecificConfig {
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub splashscreen: Option<Expandable<File>>,
78}
79
80#[derive(Clone, Debug, Default, Deserialize, Serialize)]
81pub struct TerminalConfigurationConfigurationResourceOfflineConfig {
82 pub enabled: Option<bool>,
86}
87
88#[derive(Clone, Debug, Default, Deserialize, Serialize)]
89pub struct TerminalConfigurationConfigurationResourceTipping {
90 #[serde(skip_serializing_if = "Option::is_none")]
91 pub aud: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
92
93 #[serde(skip_serializing_if = "Option::is_none")]
94 pub cad: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
95
96 #[serde(skip_serializing_if = "Option::is_none")]
97 pub chf: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
98
99 #[serde(skip_serializing_if = "Option::is_none")]
100 pub czk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
101
102 #[serde(skip_serializing_if = "Option::is_none")]
103 pub dkk: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
104
105 #[serde(skip_serializing_if = "Option::is_none")]
106 pub eur: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
107
108 #[serde(skip_serializing_if = "Option::is_none")]
109 pub gbp: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
110
111 #[serde(skip_serializing_if = "Option::is_none")]
112 pub hkd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
113
114 #[serde(skip_serializing_if = "Option::is_none")]
115 pub myr: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
116
117 #[serde(skip_serializing_if = "Option::is_none")]
118 pub nok: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
119
120 #[serde(skip_serializing_if = "Option::is_none")]
121 pub nzd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
122
123 #[serde(skip_serializing_if = "Option::is_none")]
124 pub sek: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
125
126 #[serde(skip_serializing_if = "Option::is_none")]
127 pub sgd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
128
129 #[serde(skip_serializing_if = "Option::is_none")]
130 pub usd: Option<TerminalConfigurationConfigurationResourceCurrencySpecificConfig>,
131}
132
133#[derive(Clone, Debug, Default, Deserialize, Serialize)]
134pub struct TerminalConfigurationConfigurationResourceCurrencySpecificConfig {
135 #[serde(skip_serializing_if = "Option::is_none")]
137 pub fixed_amounts: Option<Vec<i64>>,
138
139 #[serde(skip_serializing_if = "Option::is_none")]
141 pub percentages: Option<Vec<i64>>,
142
143 #[serde(skip_serializing_if = "Option::is_none")]
145 pub smart_tip_threshold: Option<i64>,
146}
147
148#[derive(Clone, Debug, Serialize, Default)]
150pub struct CreateTerminalConfiguration<'a> {
151 #[serde(skip_serializing_if = "Option::is_none")]
153 pub bbpos_wisepos_e: Option<CreateTerminalConfigurationBbposWiseposE>,
154
155 #[serde(skip_serializing_if = "Expand::is_empty")]
157 pub expand: &'a [&'a str],
158
159 #[serde(skip_serializing_if = "Option::is_none")]
161 pub offline: Option<CreateTerminalConfigurationOffline>,
162
163 #[serde(skip_serializing_if = "Option::is_none")]
165 pub tipping: Option<CreateTerminalConfigurationTipping>,
166
167 #[serde(skip_serializing_if = "Option::is_none")]
169 pub verifone_p400: Option<CreateTerminalConfigurationVerifoneP400>,
170}
171
172impl<'a> CreateTerminalConfiguration<'a> {
173 pub fn new() -> Self {
174 CreateTerminalConfiguration {
175 bbpos_wisepos_e: Default::default(),
176 expand: Default::default(),
177 offline: Default::default(),
178 tipping: Default::default(),
179 verifone_p400: Default::default(),
180 }
181 }
182}
183
184#[derive(Clone, Debug, Serialize, Default)]
186pub struct ListTerminalConfigurations<'a> {
187 #[serde(skip_serializing_if = "Option::is_none")]
192 pub ending_before: Option<TerminalConfigurationId>,
193
194 #[serde(skip_serializing_if = "Expand::is_empty")]
196 pub expand: &'a [&'a str],
197
198 #[serde(skip_serializing_if = "Option::is_none")]
200 pub is_account_default: Option<bool>,
201
202 #[serde(skip_serializing_if = "Option::is_none")]
206 pub limit: Option<u64>,
207
208 #[serde(skip_serializing_if = "Option::is_none")]
213 pub starting_after: Option<TerminalConfigurationId>,
214}
215
216impl<'a> ListTerminalConfigurations<'a> {
217 pub fn new() -> Self {
218 ListTerminalConfigurations {
219 ending_before: Default::default(),
220 expand: Default::default(),
221 is_account_default: Default::default(),
222 limit: Default::default(),
223 starting_after: Default::default(),
224 }
225 }
226}
227impl Paginable for ListTerminalConfigurations<'_> {
228 type O = TerminalConfiguration;
229 fn set_last(&mut self, item: Self::O) {
230 self.starting_after = Some(item.id());
231 }
232}
233#[derive(Clone, Debug, Default, Deserialize, Serialize)]
234pub struct CreateTerminalConfigurationBbposWiseposE {
235 #[serde(skip_serializing_if = "Option::is_none")]
237 pub splashscreen: Option<String>,
238}
239
240#[derive(Clone, Debug, Default, Deserialize, Serialize)]
241pub struct CreateTerminalConfigurationOffline {
242 pub enabled: bool,
246}
247
248#[derive(Clone, Debug, Default, Deserialize, Serialize)]
249pub struct CreateTerminalConfigurationTipping {
250 #[serde(skip_serializing_if = "Option::is_none")]
252 pub aud: Option<CreateTerminalConfigurationTippingAud>,
253
254 #[serde(skip_serializing_if = "Option::is_none")]
256 pub cad: Option<CreateTerminalConfigurationTippingCad>,
257
258 #[serde(skip_serializing_if = "Option::is_none")]
260 pub chf: Option<CreateTerminalConfigurationTippingChf>,
261
262 #[serde(skip_serializing_if = "Option::is_none")]
264 pub czk: Option<CreateTerminalConfigurationTippingCzk>,
265
266 #[serde(skip_serializing_if = "Option::is_none")]
268 pub dkk: Option<CreateTerminalConfigurationTippingDkk>,
269
270 #[serde(skip_serializing_if = "Option::is_none")]
272 pub eur: Option<CreateTerminalConfigurationTippingEur>,
273
274 #[serde(skip_serializing_if = "Option::is_none")]
276 pub gbp: Option<CreateTerminalConfigurationTippingGbp>,
277
278 #[serde(skip_serializing_if = "Option::is_none")]
280 pub hkd: Option<CreateTerminalConfigurationTippingHkd>,
281
282 #[serde(skip_serializing_if = "Option::is_none")]
284 pub myr: Option<CreateTerminalConfigurationTippingMyr>,
285
286 #[serde(skip_serializing_if = "Option::is_none")]
288 pub nok: Option<CreateTerminalConfigurationTippingNok>,
289
290 #[serde(skip_serializing_if = "Option::is_none")]
292 pub nzd: Option<CreateTerminalConfigurationTippingNzd>,
293
294 #[serde(skip_serializing_if = "Option::is_none")]
296 pub sek: Option<CreateTerminalConfigurationTippingSek>,
297
298 #[serde(skip_serializing_if = "Option::is_none")]
300 pub sgd: Option<CreateTerminalConfigurationTippingSgd>,
301
302 #[serde(skip_serializing_if = "Option::is_none")]
304 pub usd: Option<CreateTerminalConfigurationTippingUsd>,
305}
306
307#[derive(Clone, Debug, Default, Deserialize, Serialize)]
308pub struct CreateTerminalConfigurationVerifoneP400 {
309 #[serde(skip_serializing_if = "Option::is_none")]
311 pub splashscreen: Option<String>,
312}
313
314#[derive(Clone, Debug, Default, Deserialize, Serialize)]
315pub struct CreateTerminalConfigurationTippingAud {
316 #[serde(skip_serializing_if = "Option::is_none")]
318 pub fixed_amounts: Option<Vec<i64>>,
319
320 #[serde(skip_serializing_if = "Option::is_none")]
322 pub percentages: Option<Vec<i64>>,
323
324 #[serde(skip_serializing_if = "Option::is_none")]
326 pub smart_tip_threshold: Option<i64>,
327}
328
329#[derive(Clone, Debug, Default, Deserialize, Serialize)]
330pub struct CreateTerminalConfigurationTippingCad {
331 #[serde(skip_serializing_if = "Option::is_none")]
333 pub fixed_amounts: Option<Vec<i64>>,
334
335 #[serde(skip_serializing_if = "Option::is_none")]
337 pub percentages: Option<Vec<i64>>,
338
339 #[serde(skip_serializing_if = "Option::is_none")]
341 pub smart_tip_threshold: Option<i64>,
342}
343
344#[derive(Clone, Debug, Default, Deserialize, Serialize)]
345pub struct CreateTerminalConfigurationTippingChf {
346 #[serde(skip_serializing_if = "Option::is_none")]
348 pub fixed_amounts: Option<Vec<i64>>,
349
350 #[serde(skip_serializing_if = "Option::is_none")]
352 pub percentages: Option<Vec<i64>>,
353
354 #[serde(skip_serializing_if = "Option::is_none")]
356 pub smart_tip_threshold: Option<i64>,
357}
358
359#[derive(Clone, Debug, Default, Deserialize, Serialize)]
360pub struct CreateTerminalConfigurationTippingCzk {
361 #[serde(skip_serializing_if = "Option::is_none")]
363 pub fixed_amounts: Option<Vec<i64>>,
364
365 #[serde(skip_serializing_if = "Option::is_none")]
367 pub percentages: Option<Vec<i64>>,
368
369 #[serde(skip_serializing_if = "Option::is_none")]
371 pub smart_tip_threshold: Option<i64>,
372}
373
374#[derive(Clone, Debug, Default, Deserialize, Serialize)]
375pub struct CreateTerminalConfigurationTippingDkk {
376 #[serde(skip_serializing_if = "Option::is_none")]
378 pub fixed_amounts: Option<Vec<i64>>,
379
380 #[serde(skip_serializing_if = "Option::is_none")]
382 pub percentages: Option<Vec<i64>>,
383
384 #[serde(skip_serializing_if = "Option::is_none")]
386 pub smart_tip_threshold: Option<i64>,
387}
388
389#[derive(Clone, Debug, Default, Deserialize, Serialize)]
390pub struct CreateTerminalConfigurationTippingEur {
391 #[serde(skip_serializing_if = "Option::is_none")]
393 pub fixed_amounts: Option<Vec<i64>>,
394
395 #[serde(skip_serializing_if = "Option::is_none")]
397 pub percentages: Option<Vec<i64>>,
398
399 #[serde(skip_serializing_if = "Option::is_none")]
401 pub smart_tip_threshold: Option<i64>,
402}
403
404#[derive(Clone, Debug, Default, Deserialize, Serialize)]
405pub struct CreateTerminalConfigurationTippingGbp {
406 #[serde(skip_serializing_if = "Option::is_none")]
408 pub fixed_amounts: Option<Vec<i64>>,
409
410 #[serde(skip_serializing_if = "Option::is_none")]
412 pub percentages: Option<Vec<i64>>,
413
414 #[serde(skip_serializing_if = "Option::is_none")]
416 pub smart_tip_threshold: Option<i64>,
417}
418
419#[derive(Clone, Debug, Default, Deserialize, Serialize)]
420pub struct CreateTerminalConfigurationTippingHkd {
421 #[serde(skip_serializing_if = "Option::is_none")]
423 pub fixed_amounts: Option<Vec<i64>>,
424
425 #[serde(skip_serializing_if = "Option::is_none")]
427 pub percentages: Option<Vec<i64>>,
428
429 #[serde(skip_serializing_if = "Option::is_none")]
431 pub smart_tip_threshold: Option<i64>,
432}
433
434#[derive(Clone, Debug, Default, Deserialize, Serialize)]
435pub struct CreateTerminalConfigurationTippingMyr {
436 #[serde(skip_serializing_if = "Option::is_none")]
438 pub fixed_amounts: Option<Vec<i64>>,
439
440 #[serde(skip_serializing_if = "Option::is_none")]
442 pub percentages: Option<Vec<i64>>,
443
444 #[serde(skip_serializing_if = "Option::is_none")]
446 pub smart_tip_threshold: Option<i64>,
447}
448
449#[derive(Clone, Debug, Default, Deserialize, Serialize)]
450pub struct CreateTerminalConfigurationTippingNok {
451 #[serde(skip_serializing_if = "Option::is_none")]
453 pub fixed_amounts: Option<Vec<i64>>,
454
455 #[serde(skip_serializing_if = "Option::is_none")]
457 pub percentages: Option<Vec<i64>>,
458
459 #[serde(skip_serializing_if = "Option::is_none")]
461 pub smart_tip_threshold: Option<i64>,
462}
463
464#[derive(Clone, Debug, Default, Deserialize, Serialize)]
465pub struct CreateTerminalConfigurationTippingNzd {
466 #[serde(skip_serializing_if = "Option::is_none")]
468 pub fixed_amounts: Option<Vec<i64>>,
469
470 #[serde(skip_serializing_if = "Option::is_none")]
472 pub percentages: Option<Vec<i64>>,
473
474 #[serde(skip_serializing_if = "Option::is_none")]
476 pub smart_tip_threshold: Option<i64>,
477}
478
479#[derive(Clone, Debug, Default, Deserialize, Serialize)]
480pub struct CreateTerminalConfigurationTippingSek {
481 #[serde(skip_serializing_if = "Option::is_none")]
483 pub fixed_amounts: Option<Vec<i64>>,
484
485 #[serde(skip_serializing_if = "Option::is_none")]
487 pub percentages: Option<Vec<i64>>,
488
489 #[serde(skip_serializing_if = "Option::is_none")]
491 pub smart_tip_threshold: Option<i64>,
492}
493
494#[derive(Clone, Debug, Default, Deserialize, Serialize)]
495pub struct CreateTerminalConfigurationTippingSgd {
496 #[serde(skip_serializing_if = "Option::is_none")]
498 pub fixed_amounts: Option<Vec<i64>>,
499
500 #[serde(skip_serializing_if = "Option::is_none")]
502 pub percentages: Option<Vec<i64>>,
503
504 #[serde(skip_serializing_if = "Option::is_none")]
506 pub smart_tip_threshold: Option<i64>,
507}
508
509#[derive(Clone, Debug, Default, Deserialize, Serialize)]
510pub struct CreateTerminalConfigurationTippingUsd {
511 #[serde(skip_serializing_if = "Option::is_none")]
513 pub fixed_amounts: Option<Vec<i64>>,
514
515 #[serde(skip_serializing_if = "Option::is_none")]
517 pub percentages: Option<Vec<i64>>,
518
519 #[serde(skip_serializing_if = "Option::is_none")]
521 pub smart_tip_threshold: Option<i64>,
522}