sumup_rs/models/
transaction.rs

1use super::common::Link;
2use serde::{Deserialize, Serialize};
3
4#[derive(Debug, Clone, Serialize, Deserialize)]
5pub struct TransactionHistoryResponse {
6    pub items: Vec<Transaction>,
7    #[serde(default)]
8    pub links: Vec<Link>,
9}
10
11#[derive(Debug, Clone, Serialize, Deserialize)]
12pub struct Transaction {
13    pub id: String,
14    pub transaction_code: String,
15    pub amount: f64,
16    pub currency: String,
17    pub timestamp: String,
18    #[serde(default, skip_serializing_if = "Option::is_none")]
19    pub status: Option<String>,
20    #[serde(default, skip_serializing_if = "Option::is_none")]
21    pub payment_type: Option<String>,
22    #[serde(default, skip_serializing_if = "Option::is_none")]
23    pub installments_count: Option<i32>,
24    #[serde(default, skip_serializing_if = "Option::is_none")]
25    pub merchant_code: Option<String>,
26    #[serde(default, skip_serializing_if = "Option::is_none")]
27    pub vat_amount: Option<f64>,
28    #[serde(default, skip_serializing_if = "Option::is_none")]
29    pub tip_amount: Option<f64>,
30    #[serde(default, skip_serializing_if = "Option::is_none")]
31    pub entry_mode: Option<String>,
32    #[serde(default, skip_serializing_if = "Option::is_none")]
33    pub auth_code: Option<String>,
34    #[serde(default, skip_serializing_if = "Option::is_none")]
35    pub internal_id: Option<i64>,
36    // ... add other fields from the transaction object as needed
37}