ya_client_model/payment/
allocation.rs1use std::collections::HashMap;
2
3use bigdecimal::BigDecimal;
4use chrono::{DateTime, Utc};
5use serde::{Deserialize, Serialize};
6
7#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
8pub struct ValidateDepositCall {
9 #[serde(flatten)]
10 pub arguments: HashMap<String, String>,
11}
12
13#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
14pub struct Deposit {
15 pub id: String,
16 pub contract: String,
17 pub validate: Option<ValidateDepositCall>,
18}
19
20#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
21pub struct DepositUpdate {
22 pub validate: Option<ValidateDepositCall>,
23}
24
25#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
26#[serde(rename_all = "camelCase")]
27pub struct Allocation {
28 pub allocation_id: String,
29 pub address: String,
30 pub payment_platform: String,
31 pub total_amount: BigDecimal,
32 pub spent_amount: BigDecimal,
33 pub remaining_amount: BigDecimal,
34 pub timestamp: DateTime<Utc>,
35 #[serde(skip_serializing_if = "Option::is_none", default)]
36 pub timeout: Option<DateTime<Utc>>,
37 #[serde(skip_serializing_if = "Option::is_none", default)]
38 pub deposit: Option<Deposit>,
39 pub make_deposit: bool,
40}
41
42#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
43#[serde(rename_all = "camelCase")]
44pub struct PaymentPlatform {
45 pub driver: Option<String>,
46 pub network: Option<String>,
47 pub token: Option<String>,
48}
49
50#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
51#[serde(rename_all = "camelCase", untagged)]
52pub enum PaymentPlatformEnum {
53 PaymentPlatformName(String),
54 PaymentPlatform(PaymentPlatform),
55}
56
57#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
58#[serde(rename_all = "camelCase")]
59pub struct NewAllocation {
60 pub address: Option<String>,
61 pub payment_platform: Option<PaymentPlatformEnum>,
62 pub total_amount: BigDecimal,
63 #[serde(skip_serializing_if = "Option::is_none", default)]
64 pub timeout: Option<DateTime<Utc>>,
65 #[serde(skip_serializing_if = "Option::is_none", default)]
66 pub deposit: Option<Deposit>,
67 pub make_deposit: bool,
68}
69
70#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
71#[serde(rename_all = "camelCase")]
72pub struct AllocationUpdate {
73 #[serde(skip_serializing_if = "Option::is_none", default)]
74 pub total_amount: Option<BigDecimal>,
75 #[serde(skip_serializing_if = "Option::is_none", default)]
76 pub timeout: Option<DateTime<Utc>>,
77 #[serde(skip_serializing_if = "Option::is_none", default)]
78 pub deposit: Option<DepositUpdate>,
79}