ya_client_model/payment/
params.rs

1use chrono::{DateTime, Utc};
2use serde::{Deserialize, Deserializer, Serialize};
3
4pub const DEFAULT_ACK_TIMEOUT: f64 = 15.0; // seconds
5pub const DEFAULT_EVENT_TIMEOUT: f64 = 5.0; // seconds
6
7#[derive(Deserialize, Serialize)]
8pub struct DebitNoteId {
9    pub debit_note_id: String,
10}
11
12#[derive(Deserialize, Serialize)]
13#[serde(rename_all = "camelCase")]
14pub struct DebitNotePaymentsParams {
15    pub debit_note_id: String,
16    #[serde(default)]
17    pub max_items: Option<u32>,
18    #[serde(default)]
19    pub after_timestamp: Option<DateTime<Utc>>,
20}
21
22#[derive(Deserialize, Serialize)]
23pub struct InvoiceId {
24    pub invoice_id: String,
25}
26
27#[derive(Deserialize, Serialize)]
28pub struct AllocationId {
29    pub allocation_id: String,
30}
31
32#[derive(Deserialize, Serialize)]
33pub struct PaymentId {
34    pub payment_id: String,
35}
36
37#[derive(Deserialize, Serialize)]
38pub struct Timeout {
39    #[serde(default)]
40    pub timeout: Option<f64>,
41}
42
43#[derive(Deserialize, Serialize)]
44#[serde(rename_all = "camelCase")]
45pub struct EventParams {
46    #[serde(default)]
47    pub timeout: Option<f64>,
48    #[serde(default)]
49    pub after_timestamp: Option<DateTime<Utc>>,
50    #[serde(default)]
51    pub max_events: Option<u32>,
52    #[serde(default)]
53    pub app_session_id: Option<String>,
54}
55
56#[derive(Deserialize, Serialize)]
57#[serde(rename_all = "camelCase")]
58pub struct FilterParams {
59    #[serde(default)]
60    pub max_items: Option<u32>,
61    #[serde(default)]
62    pub after_timestamp: Option<DateTime<Utc>>,
63}
64
65#[derive(Deserialize, Serialize)]
66#[serde(rename_all = "camelCase")]
67pub struct DriverNetworkParams {
68    #[serde(flatten)]
69    pub event_params: EventParams,
70    #[serde(default)]
71    pub network: Option<String>,
72    #[serde(default)]
73    pub driver: Option<String>,
74}
75
76#[derive(Deserialize, Serialize)]
77pub struct DriverStatusParams {
78    #[serde(default)]
79    pub network: Option<String>,
80    #[serde(default)]
81    pub driver: Option<String>,
82}
83
84#[derive(Deserialize, Serialize)]
85pub struct AllocationIds {
86    #[serde(
87        rename = "allocationIds",
88        deserialize_with = "deserialize_comma_separated"
89    )]
90    pub allocation_ids: Vec<String>,
91}
92
93fn deserialize_comma_separated<'de, D>(deserializer: D) -> Result<Vec<String>, D::Error>
94where
95    D: Deserializer<'de>,
96{
97    let s: &str = Deserialize::deserialize(deserializer)?;
98    Ok(s.split(',').map(str::to_string).collect())
99}