noah_sdk/models/
checkout.rs1use crate::models::common::*;
4use serde::{Deserialize, Serialize};
5
6#[derive(Debug, Clone, Serialize, Deserialize)]
8pub struct LineItem {
9 #[serde(rename = "Description")]
11 pub description: String,
12 #[serde(rename = "Quantity")]
14 pub quantity: PositiveDecimal,
15 #[serde(rename = "UnitAmount")]
17 pub unit_amount: PositiveDecimal,
18 #[serde(rename = "TotalAmount")]
20 pub total_amount: PositiveDecimal,
21}
22
23pub type LineItems = Vec<LineItem>;
25
26#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
28#[serde(rename_all = "PascalCase")]
29pub enum CheckoutSessionStatus {
30 Pending,
32 Failed,
34 Settled,
36}
37
38#[derive(Debug, Clone, Serialize, Deserialize, PartialEq, Eq)]
40#[serde(rename_all = "PascalCase")]
41pub enum CheckoutSessionType {
42 PayinCrypto,
44 PayinFiat,
46 PayoutFiat,
48}
49
50#[derive(Debug, Clone, Serialize, Deserialize)]
52pub struct CheckoutSession {
53 #[serde(rename = "CheckoutSessionID")]
55 pub checkout_session_id: String,
56 #[serde(rename = "PaymentMethodCategory")]
58 pub payment_method_category: Option<PaymentMethodCategory>,
59 #[serde(rename = "SourceCurrency")]
61 pub source_currency: String,
62 #[serde(rename = "DestinationCurrency")]
64 pub destination_currency: String,
65 #[serde(rename = "SourceAmount")]
67 pub source_amount: PositiveDecimal,
68 #[serde(rename = "DestinationAmount")]
70 pub destination_amount: PositiveDecimal,
71 #[serde(rename = "AuthorizedAmount")]
73 pub authorized_amount: Option<PositiveDecimal>,
74 #[serde(rename = "Status")]
76 pub status: String,
77 #[serde(rename = "ExternalID")]
79 pub external_id: Option<ExternalID>,
80 #[serde(rename = "CustomerID")]
82 pub customer_id: CustomerID,
83 #[serde(rename = "ReturnURL")]
85 pub return_url: ReturnURL,
86 #[serde(rename = "LineItems")]
88 pub line_items: LineItems,
89 #[serde(rename = "Type")]
91 pub session_type: String,
92 #[serde(rename = "Expiry")]
94 pub expiry: Option<DateTime>,
95 #[serde(rename = "Created")]
97 pub created: DateTime,
98}
99
100#[derive(Debug, Clone, Serialize, Deserialize)]
102pub struct CheckoutSessionResponse {
103 #[serde(rename = "HostedURL")]
105 pub hosted_url: String,
106 #[serde(rename = "CheckoutSession")]
108 pub checkout_session: CheckoutSession,
109}