ynab_api/models/
scheduled_transaction_summary.rs1use crate::models;
12use serde::{Deserialize, Serialize};
13
14#[derive(Clone, Default, Debug, PartialEq, Serialize, Deserialize)]
15pub struct ScheduledTransactionSummary {
16 #[serde(rename = "id")]
17 pub id: uuid::Uuid,
18 #[serde(rename = "date_first")]
20 pub date_first: String,
21 #[serde(rename = "date_next")]
23 pub date_next: String,
24 #[serde(rename = "frequency")]
25 pub frequency: Frequency,
26 #[serde(rename = "amount")]
28 pub amount: i64,
29 #[serde(rename = "memo", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
30 pub memo: Option<Option<String>>,
31 #[serde(rename = "flag_color", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
32 pub flag_color: Option<Option<models::TransactionFlagColor>>,
33 #[serde(rename = "flag_name", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
35 pub flag_name: Option<Option<String>>,
36 #[serde(rename = "account_id")]
37 pub account_id: uuid::Uuid,
38 #[serde(rename = "payee_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
39 pub payee_id: Option<Option<uuid::Uuid>>,
40 #[serde(rename = "category_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
41 pub category_id: Option<Option<uuid::Uuid>>,
42 #[serde(rename = "transfer_account_id", default, with = "::serde_with::rust::double_option", skip_serializing_if = "Option::is_none")]
44 pub transfer_account_id: Option<Option<uuid::Uuid>>,
45 #[serde(rename = "deleted")]
47 pub deleted: bool,
48}
49
50impl ScheduledTransactionSummary {
51 pub fn new(id: uuid::Uuid, date_first: String, date_next: String, frequency: Frequency, amount: i64, account_id: uuid::Uuid, deleted: bool) -> ScheduledTransactionSummary {
52 ScheduledTransactionSummary {
53 id,
54 date_first,
55 date_next,
56 frequency,
57 amount,
58 memo: None,
59 flag_color: None,
60 flag_name: None,
61 account_id,
62 payee_id: None,
63 category_id: None,
64 transfer_account_id: None,
65 deleted,
66 }
67 }
68}
69#[derive(Clone, Copy, Debug, Eq, PartialEq, Ord, PartialOrd, Hash, Serialize, Deserialize)]
71pub enum Frequency {
72 #[serde(rename = "never")]
73 Never,
74 #[serde(rename = "daily")]
75 Daily,
76 #[serde(rename = "weekly")]
77 Weekly,
78 #[serde(rename = "everyOtherWeek")]
79 EveryOtherWeek,
80 #[serde(rename = "twiceAMonth")]
81 TwiceAMonth,
82 #[serde(rename = "every4Weeks")]
83 Every4Weeks,
84 #[serde(rename = "monthly")]
85 Monthly,
86 #[serde(rename = "everyOtherMonth")]
87 EveryOtherMonth,
88 #[serde(rename = "every3Months")]
89 Every3Months,
90 #[serde(rename = "every4Months")]
91 Every4Months,
92 #[serde(rename = "twiceAYear")]
93 TwiceAYear,
94 #[serde(rename = "yearly")]
95 Yearly,
96 #[serde(rename = "everyOtherYear")]
97 EveryOtherYear,
98}
99
100impl Default for Frequency {
101 fn default() -> Frequency {
102 Self::Never
103 }
104}
105