zebedee_rust/charges/
types.rs1use crate::StdResp;
2use chrono::{DateTime, Utc};
3use serde::{Deserialize, Serialize};
4
5pub type FetchChargesResponse = StdResp<Option<Vec<ChargesData>>>;
6pub type FetchOneChargeResponse = StdResp<Option<ChargesData>>;
7
8#[derive(Debug, Serialize, Deserialize, Clone, Default)]
9pub struct InvoiceData {
10 pub request: String,
11 pub uri: String,
12}
13
14#[derive(Debug, Serialize, Deserialize, Default)]
15pub struct ChargesData {
16 pub id: String,
17 pub unit: String,
18 pub amount: String,
19 #[serde(rename = "createdAt")]
20 pub created_at: Option<DateTime<Utc>>,
21 #[serde(rename = "internalId")]
22 pub internal_id: String,
23 #[serde(rename = "callbackUrl")]
24 pub callback_url: String,
25 pub description: String,
26 #[serde(rename = "expiresAt")]
27 pub expires_at: Option<DateTime<Utc>>,
28 #[serde(rename = "confirmedAt")]
29 pub confirmed_at: Option<DateTime<Utc>>,
30 pub status: String,
31 pub invoice: Option<InvoiceData>,
32}
33
34#[derive(Debug, Serialize, Deserialize)]
36pub struct Charge {
37 #[serde(rename = "expiresIn")]
38 pub expires_in: u32,
39 pub amount: String,
40 pub description: String,
41 #[serde(rename = "internalId")]
42 pub internal_id: String,
43 #[serde(rename = "callbackUrl")]
44 pub callback_url: String,
45}
46
47impl Default for Charge {
48 fn default() -> Self {
49 Charge {
50 expires_in: 300,
51 amount: String::from("0"),
52 description: String::from("using zebedee rust sdk"),
53 internal_id: String::from(""),
54 callback_url: String::from(""),
55 }
56 }
57}