crypto_pay_api/models/check/
params.rs1use rust_decimal::Decimal;
2use serde::Serialize;
3
4use crate::{
5 models::CryptoCurrencyCode,
6 utils::{serialize_comma_separated_list, serialize_decimal_to_string},
7};
8
9use super::CheckStatus;
10
11#[derive(Debug, Serialize)]
12pub struct CreateCheckParams {
13 pub(crate) asset: CryptoCurrencyCode,
15
16 #[serde(serialize_with = "serialize_decimal_to_string")]
18 pub(crate) amount: Decimal,
19
20 #[serde(skip_serializing_if = "Option::is_none")]
22 pub(crate) pin_to_user_id: Option<u64>,
23
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub(crate) pin_to_username: Option<String>,
27}
28
29#[derive(Debug, Default, Serialize)]
30pub struct GetChecksParams {
31 #[serde(skip_serializing_if = "Option::is_none")]
34 pub(crate) asset: Option<CryptoCurrencyCode>,
35
36 #[serde(
38 serialize_with = "serialize_comma_separated_list",
39 skip_serializing_if = "GetChecksParams::should_skip_check_ids"
40 )]
41 pub(crate) check_ids: Option<Vec<u64>>,
42
43 #[serde(skip_serializing_if = "Option::is_none")]
46 pub(crate) status: Option<CheckStatus>,
47
48 #[serde(skip_serializing_if = "Option::is_none")]
51 pub(crate) offset: Option<u32>,
52
53 #[serde(skip_serializing_if = "Option::is_none")]
56 pub(crate) count: Option<u16>,
57}
58
59impl GetChecksParams {
60 fn should_skip_check_ids(check_ids: &Option<Vec<u64>>) -> bool {
61 !matches!(check_ids, Some(check_ids) if !check_ids.is_empty())
62 }
63}
64
65#[derive(Debug, Serialize)]
66pub struct DeleteCheckParams {
67 pub check_id: u64,
68}