From aa52e632b866b51d455787a96bcd2f5a63b7ac89 Mon Sep 17 00:00:00 2001 From: Jesse Luehrs Date: Mon, 19 Aug 2019 00:19:38 -0400 Subject: move ynab-api to its own repository --- src/models/scheduled_transaction_detail.rs | 128 +++++++++++++++++++++++++++++ 1 file changed, 128 insertions(+) create mode 100644 src/models/scheduled_transaction_detail.rs (limited to 'src/models/scheduled_transaction_detail.rs') diff --git a/src/models/scheduled_transaction_detail.rs b/src/models/scheduled_transaction_detail.rs new file mode 100644 index 0000000..d86ef25 --- /dev/null +++ b/src/models/scheduled_transaction_detail.rs @@ -0,0 +1,128 @@ +/* + * YNAB API Endpoints + * + * Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.youneedabudget.com + * + * The version of the OpenAPI document: 1.0.0 + * + * Generated by: https://openapi-generator.tech + */ + + +#[allow(unused_imports)] +use serde_json::Value; + + +#[derive(Debug, Serialize, Deserialize)] +pub struct ScheduledTransactionDetail { + #[serde(rename = "id")] + pub id: String, + /// The first date for which the Scheduled Transaction was scheduled. + #[serde(rename = "date_first")] + pub date_first: String, + /// The next date for which the Scheduled Transaction is scheduled. + #[serde(rename = "date_next")] + pub date_next: String, + #[serde(rename = "frequency")] + pub frequency: String, + /// The scheduled transaction amount in milliunits format + #[serde(rename = "amount")] + pub amount: i64, + #[serde(rename = "memo", skip_serializing_if = "Option::is_none")] + pub memo: Option, + /// The scheduled transaction flag + #[serde(rename = "flag_color")] + pub flag_color: String, + #[serde(rename = "account_id")] + pub account_id: String, + #[serde(rename = "payee_id", skip_serializing_if = "Option::is_none")] + pub payee_id: Option, + #[serde(rename = "category_id")] + pub category_id: String, + /// If a transfer, the account_id which the scheduled transaction transfers to + #[serde(rename = "transfer_account_id", skip_serializing_if = "Option::is_none")] + pub transfer_account_id: Option, + /// Whether or not the scheduled transaction has been deleted. Deleted scheduled transactions will only be included in delta requests. + #[serde(rename = "deleted")] + pub deleted: bool, + #[serde(rename = "account_name")] + pub account_name: String, + #[serde(rename = "payee_name")] + pub payee_name: String, + #[serde(rename = "category_name")] + pub category_name: String, + /// If a split scheduled transaction, the subtransactions. + #[serde(rename = "subtransactions")] + pub subtransactions: Vec<::models::ScheduledSubTransaction>, +} + +impl ScheduledTransactionDetail { + pub fn new(id: String, date_first: String, date_next: String, frequency: String, amount: i64, flag_color: String, account_id: String, category_id: String, deleted: bool, account_name: String, payee_name: String, category_name: String, subtransactions: Vec<::models::ScheduledSubTransaction>) -> ScheduledTransactionDetail { + ScheduledTransactionDetail { + id: id, + date_first: date_first, + date_next: date_next, + frequency: frequency, + amount: amount, + memo: None, + flag_color: flag_color, + account_id: account_id, + payee_id: None, + category_id: category_id, + transfer_account_id: None, + deleted: deleted, + account_name: account_name, + payee_name: payee_name, + category_name: category_name, + subtransactions: subtransactions, + } + } +} + +/// +#[derive(Debug, Serialize, Deserialize)] +pub enum Frequency { + #[serde(rename = "never")] + Never, + #[serde(rename = "daily")] + Daily, + #[serde(rename = "weekly")] + Weekly, + #[serde(rename = "everyOtherWeek")] + EveryOtherWeek, + #[serde(rename = "twiceAMonth")] + TwiceAMonth, + #[serde(rename = "every4Weeks")] + Every4Weeks, + #[serde(rename = "monthly")] + Monthly, + #[serde(rename = "everyOtherMonth")] + EveryOtherMonth, + #[serde(rename = "every3Months")] + Every3Months, + #[serde(rename = "every4Months")] + Every4Months, + #[serde(rename = "twiceAYear")] + TwiceAYear, + #[serde(rename = "yearly")] + Yearly, + #[serde(rename = "everyOtherYear")] + EveryOtherYear, +} +/// The scheduled transaction flag +#[derive(Debug, Serialize, Deserialize)] +pub enum FlagColor { + #[serde(rename = "red")] + Red, + #[serde(rename = "orange")] + Orange, + #[serde(rename = "yellow")] + Yellow, + #[serde(rename = "green")] + Green, + #[serde(rename = "blue")] + Blue, + #[serde(rename = "purple")] + Purple, +} + -- cgit v1.2.3-54-g00ecf