zebedee_rust/email/
types.rs1use crate::{custom_deserializer::deserialize_from_string, StdResp, VoucherData};
2use chrono::{DateTime, Utc};
3use serde::{Deserialize, Serialize};
4
5pub type EmailPaymentResponse = StdResp<EmailPaymentRes>;
6
7#[derive(Debug, Clone, Serialize, Deserialize)]
8#[serde(untagged)]
9pub enum EmailPaymentRes {
10 ExistingZbdAccount(EmailPaymentData),
12 Voucher(VoucherData),
14}
15
16#[derive(Debug, Clone, Serialize, Deserialize)]
17pub struct EmailPaymentData {
18 pub id: String,
19 pub status: String,
21 #[serde(deserialize_with = "deserialize_from_string")]
22 pub amount: u64,
23 pub comment: String,
24 #[serde(rename = "receiverId")]
25 pub receiver_id: String,
26 #[serde(rename = "senderTxId")]
27 pub sender_tx_id: String,
28 #[serde(rename = "settledAt")]
29 pub settled_at: DateTime<Utc>,
30 #[serde(rename = "transactionId")]
31 pub transaction_id: String,
32}
33
34#[derive(Debug, Serialize, Deserialize)]
36pub struct EmailPaymentReqest {
37 pub email: String,
39 pub amount: String,
41 pub comment: String,
43}