use serde::Deserialize;
use serde_json::Value;
use super::ExtraFields;
use crate::model::NumberString;
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct DepositInfoUpdate {
#[serde(default)]
pub uid: String,
#[serde(default)]
pub sub_acct: String,
#[serde(default)]
pub p_time: NumberString,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub from: String,
#[serde(default)]
pub area_code_from: String,
#[serde(default)]
pub to: String,
#[serde(default)]
pub tx_id: String,
#[serde(default)]
pub ts: NumberString,
#[serde(default)]
pub state: String,
#[serde(default)]
pub dep_id: String,
#[serde(default)]
pub from_wd_id: String,
#[serde(default)]
pub actual_dep_blk_confirm: NumberString,
#[serde(flatten, default)]
pub extra: ExtraFields,
}
#[derive(Debug, Clone, Default, Deserialize)]
#[serde(rename_all = "camelCase")]
#[non_exhaustive]
pub struct WithdrawalInfoUpdate {
#[serde(default)]
pub uid: String,
#[serde(default)]
pub sub_acct: String,
#[serde(default)]
pub p_time: NumberString,
#[serde(default)]
pub ccy: String,
#[serde(default)]
pub chain: String,
#[serde(default)]
pub non_tradable_asset: bool,
#[serde(default)]
pub amt: NumberString,
#[serde(default)]
pub ts: NumberString,
#[serde(default)]
pub from: String,
#[serde(default)]
pub area_code_from: String,
#[serde(default)]
pub to: String,
#[serde(default)]
pub area_code_to: String,
#[serde(default)]
pub to_addr_type: String,
#[serde(default)]
pub tag: String,
#[serde(default)]
pub pmt_id: String,
#[serde(default)]
pub memo: String,
#[serde(default)]
pub addr_ex: Value,
#[serde(default)]
pub tx_id: String,
#[serde(default)]
pub fee: NumberString,
#[serde(default)]
pub fee_ccy: String,
#[serde(default)]
pub state: String,
#[serde(default)]
pub wd_id: String,
#[serde(default)]
pub client_id: String,
#[serde(default)]
pub note: String,
#[serde(flatten, default)]
pub extra: ExtraFields,
}