1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
5pub enum AccountType {
6 #[serde(rename = "01")]
7 NotApplicable,
8 #[serde(rename = "02")]
9 Credit,
10 #[serde(rename = "03")]
11 Debit,
12}
13
14#[derive(Debug, Clone, Default, Serialize, Deserialize)]
16#[serde(rename_all = "camelCase")]
17pub struct AccountInfo {
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub ch_acc_age_ind: Option<String>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub ch_acc_date: Option<String>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub ch_acc_change_ind: Option<String>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub ch_acc_change: Option<String>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub ch_acc_pw_change_ind: Option<String>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub nb_purchase_account: Option<String>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub provision_attempts_day: Option<String>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub txn_activity_year: Option<String>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub txn_activity_day: Option<String>,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub ship_address_usage: Option<String>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub ship_address_usage_ind: Option<ShippingAddressUsage>,
51 #[serde(skip_serializing_if = "Option::is_none")]
53 pub ship_name_indicator: Option<String>,
54 #[serde(skip_serializing_if = "Option::is_none")]
55 pub suspicious_acc_activity: Option<super::coded::SuspiciousAccActivity>,
56}
57
58#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash, Serialize, Deserialize)]
59pub enum ShippingAddressUsage {
60 #[serde(rename = "01")]
61 ThisTransaction,
62 #[serde(rename = "02")]
63 LessThan30Days,
64 #[serde(rename = "03")]
65 ThirtyTo60Days,
66 #[serde(rename = "04")]
67 MoreThan60Days,
68}
69
70#[derive(Debug, Clone, PartialEq, Eq, Serialize, Deserialize)]
72pub struct CardRange {
73 pub start_acct_range: String,
74 pub end_acct_range: String,
75}