sumup_rs/models/
reader.rs1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct Reader {
6 pub id: String,
7 pub serial_number: String,
8 pub status: String, pub merchant_code: String,
10 pub created_at: DateTime<Utc>,
11 #[serde(default, skip_serializing_if = "Option::is_none")]
12 pub last_seen: Option<DateTime<Utc>>,
13}
14
15#[derive(Debug, Clone, Serialize, Deserialize)]
16pub struct ReaderListResponse {
17 pub readers: Vec<Reader>,
18}
19
20#[derive(Debug, Clone, Serialize, Deserialize)]
21pub struct CreateReaderRequest {
22 pub serial_number: String,
23 #[serde(skip_serializing_if = "Option::is_none")]
24 pub name: Option<String>,
25}
26
27#[derive(Debug, Clone, Serialize, Deserialize)]
28pub struct UpdateReaderRequest {
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub name: Option<String>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub status: Option<String>,
33}
34
35#[derive(Debug, Clone, Serialize, Deserialize)]
37pub struct TotalAmount {
38 pub value: f64,
39 pub currency: String,
40 pub minor_unit: i32,
41}
42
43#[derive(Debug, Clone, Serialize, Deserialize)]
44pub struct CreateReaderCheckoutRequest {
45 pub total_amount: TotalAmount,
46 pub description: String,
47 pub return_url: String,
48 #[serde(skip_serializing_if = "Option::is_none")]
49 pub installments: Option<i32>,
50 #[serde(skip_serializing_if = "Option::is_none")]
51 pub customer_id: Option<String>,
52 #[serde(skip_serializing_if = "Option::is_none")]
53 pub external_reference: Option<String>,
54}
55
56#[derive(Debug, Clone, Serialize, Deserialize)]
57pub struct ReaderCheckoutResponse {
58 pub id: String,
59 pub status: String, pub total_amount: TotalAmount,
61 pub description: String,
62 pub return_url: String,
63 #[serde(default, skip_serializing_if = "Option::is_none")]
64 pub installments: Option<i32>,
65 #[serde(default, skip_serializing_if = "Option::is_none")]
66 pub customer_id: Option<String>,
67 #[serde(default, skip_serializing_if = "Option::is_none")]
68 pub external_reference: Option<String>,
69 #[serde(default, skip_serializing_if = "Option::is_none")]
70 pub transaction_id: Option<String>,
71 pub created_at: DateTime<Utc>,
72 #[serde(default, skip_serializing_if = "Option::is_none")]
73 pub completed_at: Option<DateTime<Utc>>,
74}