ynab_api/models/
account.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct Account {
16 #[serde(rename = "id")]
17 pub id: uuid::Uuid,
18 #[serde(rename = "name")]
19 pub name: String,
20 #[serde(rename = "type")]
21 pub r#type: models::AccountType,
22 #[serde(rename = "on_budget")]
24 pub on_budget: bool,
25 #[serde(rename = "closed")]
27 pub closed: bool,
28 #[serde(rename = "note", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
29 pub note: Option<Option<String>>,
30 #[serde(rename = "balance")]
32 pub balance: i64,
33 #[serde(rename = "cleared_balance")]
35 pub cleared_balance: i64,
36 #[serde(rename = "uncleared_balance")]
38 pub uncleared_balance: i64,
39 #[serde(rename = "transfer_payee_id", deserialize_with = "Option::deserialize")]
41 pub transfer_payee_id: Option<uuid::Uuid>,
42 #[serde(rename = "direct_import_linked", skip_serializing_if = "Option::is_none")]
44 pub direct_import_linked: Option<bool>,
45 #[serde(rename = "direct_import_in_error", skip_serializing_if = "Option::is_none")]
47 pub direct_import_in_error: Option<bool>,
48 #[serde(rename = "last_reconciled_at", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
50 pub last_reconciled_at: Option<Option<String>>,
51 #[serde(rename = "debt_original_balance", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
53 pub debt_original_balance: Option<Option<i64>>,
54 #[serde(rename = "debt_interest_rates", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
55 pub debt_interest_rates: Option<Option<std::collections::HashMap<String, i64>>>,
56 #[serde(rename = "debt_minimum_payments", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
57 pub debt_minimum_payments: Option<Option<std::collections::HashMap<String, i64>>>,
58 #[serde(rename = "debt_escrow_amounts", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
59 pub debt_escrow_amounts: Option<Option<std::collections::HashMap<String, i64>>>,
60 #[serde(rename = "deleted")]
62 pub deleted: bool,
63}
64
65impl Account {
66 pub fn new(id: uuid::Uuid, name: String, r#type: models::AccountType, on_budget: bool, closed: bool, balance: i64, cleared_balance: i64, uncleared_balance: i64, transfer_payee_id: Option<uuid::Uuid>, deleted: bool) -> Account {
67 Account {
68 id,
69 name,
70 r#type,
71 on_budget,
72 closed,
73 note: None,
74 balance,
75 cleared_balance,
76 uncleared_balance,
77 transfer_payee_id,
78 direct_import_linked: None,
79 direct_import_in_error: None,
80 last_reconciled_at: None,
81 debt_original_balance: None,
82 debt_interest_rates: None,
83 debt_minimum_payments: None,
84 debt_escrow_amounts: None,
85 deleted,
86 }
87 }
88}
89