diff options
| author | Joe Carstairs <me@joeac.net> | 2024-11-17 12:16:19 +0000 |
|---|---|---|
| committer | Joe Carstairs <me@joeac.net> | 2024-11-17 12:20:48 +0000 |
| commit | 99fa72e2b9d572e00cd232bd55a3fa24722c3134 (patch) | |
| tree | 6b50ce600fffa07a0c21b7f14d2447fe5ac3c2ed /rust/actualbudget_importer/src/models | |
| parent | 10f071447594f2bdcec84a461df9ad648f71f44b (diff) | |
Refactors workspace
Diffstat (limited to 'rust/actualbudget_importer/src/models')
6 files changed, 0 insertions, 127 deletions
diff --git a/rust/actualbudget_importer/src/models/actualbudget_account.rs b/rust/actualbudget_importer/src/models/actualbudget_account.rs deleted file mode 100644 index b3d00ac..0000000 --- a/rust/actualbudget_importer/src/models/actualbudget_account.rs +++ /dev/null @@ -1,8 +0,0 @@ -use diesel::prelude::{Queryable, Selectable}; - -#[derive(Queryable, Selectable)] -#[diesel(table_name = crate::schema::accounts)] -pub struct ActualbudgetAccount { - pub id: String, - pub name: String, -} diff --git a/rust/actualbudget_importer/src/models/actualbudget_category.rs b/rust/actualbudget_importer/src/models/actualbudget_category.rs deleted file mode 100644 index cbea99b..0000000 --- a/rust/actualbudget_importer/src/models/actualbudget_category.rs +++ /dev/null @@ -1,8 +0,0 @@ -use diesel::{prelude::Queryable, Selectable}; - -#[derive(Queryable, Selectable)] -#[diesel(table_name = crate::schema::categories)] -pub struct ActualbudgetCategory { - pub id: String, - pub name: String, -} diff --git a/rust/actualbudget_importer/src/models/actualbudget_date.rs b/rust/actualbudget_importer/src/models/actualbudget_date.rs deleted file mode 100644 index bef160c..0000000 --- a/rust/actualbudget_importer/src/models/actualbudget_date.rs +++ /dev/null @@ -1,75 +0,0 @@ -use diesel::{backend::Backend, deserialize::{FromSql, FromSqlRow}, expression::AsExpression, sql_types::Integer, sqlite::Sqlite}; - -#[derive(Clone, PartialEq, Eq, Debug, AsExpression, FromSqlRow)] -#[diesel(sql_type=Integer)] -pub struct ActualbudgetDate(i32); - -#[derive(Clone, PartialOrd, PartialEq, Eq)] -enum DatePart { - MonthOfYear, - DayOfMonth, -} - -// actualbudget represents dates as numbers which "look like" the corresponding -// ISO string when written in decimal. E.g. 20240901 represents 1 Sep 2024. It -// also uses month specifiers, e.g. 202409 to represent Sep 2024. In this case, -// we interpret this as the first day of the month, e.g. 2024-09-01. - -impl ActualbudgetDate { - pub fn to_iso(&self) -> String { - format!("{0}-{1}-{2}", self.year(), self.month(), self.day()) - } - - pub fn year(&self) -> String { - self.0.to_string()[0..4].to_string() - } - - pub fn month(&self) -> String { - self.0.to_string()[4..6].to_string() - } - - pub fn day(&self) -> String { - match self.date_part() { - DatePart::DayOfMonth => self.0.to_string()[6..8].to_string(), - DatePart::MonthOfYear => String::from("01"), - } - } - - pub fn from_i32(i: i32) -> Self { - ActualbudgetDate(i) - } - - fn date_part(&self) -> DatePart { - if self.0 < 10000000 { - DatePart::MonthOfYear - } else { - DatePart::DayOfMonth - } - } - - fn dayified_value(&self) -> i32 { - match self.date_part() { - DatePart::DayOfMonth => self.0, - DatePart::MonthOfYear => self.0 * 100 + 1, - } - } -} - -impl Ord for ActualbudgetDate { - fn cmp(&self, other: &Self) -> std::cmp::Ordering { - self.dayified_value().cmp(&other.dayified_value()) - } -} - -impl PartialOrd for ActualbudgetDate { - fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> { - Some(self.cmp(other)) - } -} - -impl FromSql<Integer, Sqlite> for ActualbudgetDate { - fn from_sql(bytes: <Sqlite as Backend>::RawValue<'_>) -> diesel::deserialize::Result<Self> { - let int: i32 = FromSql::<Integer, Sqlite>::from_sql(bytes)?; - Ok(ActualbudgetDate(int)) - } -} diff --git a/rust/actualbudget_importer/src/models/actualbudget_transaction.rs b/rust/actualbudget_importer/src/models/actualbudget_transaction.rs deleted file mode 100644 index be2ca1a..0000000 --- a/rust/actualbudget_importer/src/models/actualbudget_transaction.rs +++ /dev/null @@ -1,18 +0,0 @@ -use diesel::prelude::{Identifiable, Queryable, QueryableByName, Selectable}; - -use crate::models::actualbudget_date::ActualbudgetDate; - -#[derive(Identifiable, QueryableByName, Queryable, Selectable, Clone)] -#[diesel(table_name = crate::schema::transactions)] -pub struct ActualbudgetTransaction { - pub id: String, - pub is_parent: bool, - pub is_child: bool, - pub account_id: String, - pub category_id: String, - pub amount: i32, - pub payee: String, - pub notes: String, - pub date: ActualbudgetDate, - pub parent_id: Option<String>, -} diff --git a/rust/actualbudget_importer/src/models/actualbudget_zero_budget.rs b/rust/actualbudget_importer/src/models/actualbudget_zero_budget.rs deleted file mode 100644 index 6478d34..0000000 --- a/rust/actualbudget_importer/src/models/actualbudget_zero_budget.rs +++ /dev/null @@ -1,13 +0,0 @@ -use crate::models::actualbudget_date::ActualbudgetDate; -use diesel::{prelude::{Identifiable, Queryable, QueryableByName, Selectable}, sqlite::Sqlite}; - -#[derive(Identifiable, QueryableByName, Queryable, Selectable, Clone)] -#[diesel(table_name = crate::schema::zero_budgets)] -#[diesel(check_for_backend(Sqlite))] -pub struct ActualbudgetZeroBudget { - pub id: String, - pub month: ActualbudgetDate, - pub category_id: String, - pub amount: i32, - pub do_carry_over: i32, -} diff --git a/rust/actualbudget_importer/src/models/mod.rs b/rust/actualbudget_importer/src/models/mod.rs deleted file mode 100644 index 1c97c65..0000000 --- a/rust/actualbudget_importer/src/models/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod actualbudget_account; -pub mod actualbudget_category; -pub mod actualbudget_date; -pub mod actualbudget_transaction; -pub mod actualbudget_zero_budget; |
