use serde::{Deserialize, Serialize};
#[derive(Debug, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DepositHistoryRequest {
#[serde(skip_serializing_if = "Option::is_none")]
pub currency: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub current_page: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub end_at: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub page_size: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub start_at: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub status: Option<DepositStatus>,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct DepositList {
pub current_page: i64,
pub items: Vec<Deposit>,
pub page_size: i64,
pub total_num: i64,
pub total_page: i64,
}
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Deposit {
pub address: Option<String>,
pub amount: Option<String>,
pub arrears: Option<bool>,
pub chain: Option<String>,
pub created_at: Option<i64>,
pub currency: Option<String>,
pub fee: Option<String>,
pub is_inner: Option<bool>,
pub memo: Option<String>,
pub remark: Option<String>,
pub status: Option<DepositStatus>,
pub updated_at: Option<i64>,
pub wallet_tx_id: Option<String>,
}
#[derive(Debug, Serialize, Deserialize, Clone, PartialEq)]
#[serde(rename_all = "SCREAMING_SNAKE_CASE")]
pub enum DepositStatus {
Failure,
Processing,
Success,
#[serde(rename = "TRM_MGT_REJECTED")]
TrmMgtRejected,
#[serde(rename = "WAIT_TRM_MGT")]
WaitTrmMgt,
}