use serde::{Serialize, Deserialize};
#[derive(Debug, Clone, Serialize, Deserialize, Default)]
pub struct BalancePlusAttributes {
#[serde(rename = "address_change_count_28d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address_change_count28_d: Option<i64>,
#[serde(rename = "address_change_count_90d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub address_change_count90_d: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub days_since_first_plaid_connection: Option<i64>,
#[serde(rename = "email_change_count_28d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email_change_count28_d: Option<i64>,
#[serde(rename = "email_change_count_90d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub email_change_count90_d: Option<i64>,
#[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_30d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed_plaid_non_oauth_authentication_attempts_count30_d: Option<i64>,
#[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_3d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed_plaid_non_oauth_authentication_attempts_count3_d: Option<i64>,
#[serde(rename = "failed_plaid_non_oauth_authentication_attempts_count_7d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub failed_plaid_non_oauth_authentication_attempts_count7_d: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_account_closed: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_account_frozen_or_restricted: Option<bool>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub is_savings_or_money_market_account: Option<bool>,
#[serde(rename = "nsf_overdraft_transactions_count_30d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nsf_overdraft_transactions_count30_d: Option<i64>,
#[serde(rename = "nsf_overdraft_transactions_count_60d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nsf_overdraft_transactions_count60_d: Option<i64>,
#[serde(rename = "nsf_overdraft_transactions_count_7d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nsf_overdraft_transactions_count7_d: Option<i64>,
#[serde(rename = "nsf_overdraft_transactions_count_90d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub nsf_overdraft_transactions_count90_d: Option<i64>,
#[serde(rename = "phone_change_count_28d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone_change_count28_d: Option<i64>,
#[serde(rename = "phone_change_count_90d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub phone_change_count90_d: Option<i64>,
#[serde(rename = "plaid_connections_count_30d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plaid_connections_count30_d: Option<i64>,
#[serde(rename = "plaid_connections_count_7d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plaid_connections_count7_d: Option<i64>,
#[serde(rename = "plaid_non_oauth_authentication_attempts_count_30d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plaid_non_oauth_authentication_attempts_count30_d: Option<i64>,
#[serde(rename = "plaid_non_oauth_authentication_attempts_count_3d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plaid_non_oauth_authentication_attempts_count3_d: Option<i64>,
#[serde(rename = "plaid_non_oauth_authentication_attempts_count_7d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub plaid_non_oauth_authentication_attempts_count7_d: Option<i64>,
#[serde(default, skip_serializing_if = "Option::is_none")]
pub total_plaid_connections_count: Option<i64>,
#[serde(rename = "unauthorized_transactions_count_30d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unauthorized_transactions_count30_d: Option<i64>,
#[serde(rename = "unauthorized_transactions_count_60d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unauthorized_transactions_count60_d: Option<i64>,
#[serde(rename = "unauthorized_transactions_count_7d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unauthorized_transactions_count7_d: Option<i64>,
#[serde(rename = "unauthorized_transactions_count_90d")]
#[serde(default, skip_serializing_if = "Option::is_none")]
pub unauthorized_transactions_count90_d: Option<i64>,
}
impl std::fmt::Display for BalancePlusAttributes {
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
write!(f, "{}", serde_json::to_string(self).unwrap())
}
}