use crate::models;
use serde::{Deserialize, Serialize};
#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
pub struct Transaction {
#[serde(rename = "ID")]
pub id: uuid::Uuid,
#[serde(rename = "PublicID", skip_serializing_if = "Option::is_none")]
pub public_id: Option<String>,
#[serde(rename = "Network")]
pub network: String,
#[serde(rename = "Created")]
pub created: String,
#[serde(rename = "Status")]
pub status: models::TransactionStatus,
#[serde(rename = "Direction")]
pub direction: models::TransactionDirection,
#[serde(rename = "CustomerID", skip_serializing_if = "Option::is_none")]
pub customer_id: Option<String>,
#[serde(rename = "ExternalID", skip_serializing_if = "Option::is_none")]
pub external_id: Option<String>,
#[serde(rename = "Amount", skip_serializing_if = "Option::is_none")]
pub amount: Option<String>,
#[serde(rename = "NetworkFee", skip_serializing_if = "Option::is_none")]
pub network_fee: Option<String>,
#[serde(rename = "CryptoCurrency")]
pub crypto_currency: String,
#[serde(rename = "FiatPayment", skip_serializing_if = "Option::is_none")]
pub fiat_payment: Option<Box<models::FiatPayment>>,
#[serde(rename = "Orchestration", skip_serializing_if = "Option::is_none")]
pub orchestration: Option<Box<models::TransactionOrchestration>>,
#[serde(rename = "FiatPaymentMethod", skip_serializing_if = "Option::is_none")]
pub fiat_payment_method: Option<Box<models::PaymentMethod>>,
#[serde(rename = "Breakdown", skip_serializing_if = "Option::is_none")]
pub breakdown: Option<Vec<models::TransactionBreakdownItem>>,
#[serde(rename = "AdjustmentFor", skip_serializing_if = "Option::is_none")]
pub adjustment_for: Option<Box<models::TransactionAdjustment>>,
}
impl Transaction {
pub fn new(
id: uuid::Uuid,
network: String,
created: String,
status: models::TransactionStatus,
direction: models::TransactionDirection,
crypto_currency: String,
) -> Transaction {
Transaction {
id,
public_id: None,
network,
created,
status,
direction,
customer_id: None,
external_id: None,
amount: None,
network_fee: None,
crypto_currency,
fiat_payment: None,
orchestration: None,
fiat_payment_method: None,
breakdown: None,
adjustment_for: None,
}
}
}