use serde::{Deserialize, Serialize};
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum AccountType {
#[serde(rename = "01")]
NotApplicable,
#[serde(rename = "02")]
Credit,
#[serde(rename = "03")]
Debit,
}
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct AccountInfo {
#[serde(skip_serializing_if = "Option::is_none")]
pub ch_acc_age_ind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ch_acc_date: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ch_acc_change_ind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ch_acc_change: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ch_acc_pw_change_ind: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub nb_purchase_account: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub provision_attempts_day: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub txn_activity_year: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub txn_activity_day: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ship_address_usage: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ship_address_usage_ind: Option<ShippingAddressUsage>,
#[serde(skip_serializing_if = "Option::is_none")]
pub ship_name_indicator: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub suspicious_acc_activity: Option<super::coded::SuspiciousAccActivity>,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
pub enum ShippingAddressUsage {
#[serde(rename = "01")]
ThisTransaction,
#[serde(rename = "02")]
LessThan30Days,
#[serde(rename = "03")]
ThirtyTo60Days,
#[serde(rename = "04")]
MoreThan60Days,
}
#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
pub struct CardRange {
pub start_acct_range: String,
pub end_acct_range: String,
}