summaryrefslogtreecommitdiff
path: root/rust/schist_actualbudget_importer/src/models
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-11-17 13:00:53 +0000
committerJoe Carstairs <me@joeac.net>2024-11-17 13:00:53 +0000
commit19f5040910ad297ecd618f67675cd2fa00771bdd (patch)
tree403d6e0a8924b18678d41d5d5fccf0c26bbf7d82 /rust/schist_actualbudget_importer/src/models
parent99fa72e2b9d572e00cd232bd55a3fa24722c3134 (diff)
Refactors Actualbudget importer
Diffstat (limited to 'rust/schist_actualbudget_importer/src/models')
-rw-r--r--rust/schist_actualbudget_importer/src/models/actualbudget_account.rs8
-rw-r--r--rust/schist_actualbudget_importer/src/models/actualbudget_category.rs8
-rw-r--r--rust/schist_actualbudget_importer/src/models/actualbudget_date.rs75
-rw-r--r--rust/schist_actualbudget_importer/src/models/actualbudget_transaction.rs18
-rw-r--r--rust/schist_actualbudget_importer/src/models/actualbudget_zero_budget.rs13
-rw-r--r--rust/schist_actualbudget_importer/src/models/mod.rs5
6 files changed, 0 insertions, 127 deletions
diff --git a/rust/schist_actualbudget_importer/src/models/actualbudget_account.rs b/rust/schist_actualbudget_importer/src/models/actualbudget_account.rs
deleted file mode 100644
index b3d00ac..0000000
--- a/rust/schist_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/schist_actualbudget_importer/src/models/actualbudget_category.rs b/rust/schist_actualbudget_importer/src/models/actualbudget_category.rs
deleted file mode 100644
index cbea99b..0000000
--- a/rust/schist_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/schist_actualbudget_importer/src/models/actualbudget_date.rs b/rust/schist_actualbudget_importer/src/models/actualbudget_date.rs
deleted file mode 100644
index bef160c..0000000
--- a/rust/schist_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/schist_actualbudget_importer/src/models/actualbudget_transaction.rs b/rust/schist_actualbudget_importer/src/models/actualbudget_transaction.rs
deleted file mode 100644
index be2ca1a..0000000
--- a/rust/schist_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/schist_actualbudget_importer/src/models/actualbudget_zero_budget.rs b/rust/schist_actualbudget_importer/src/models/actualbudget_zero_budget.rs
deleted file mode 100644
index 6478d34..0000000
--- a/rust/schist_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/schist_actualbudget_importer/src/models/mod.rs b/rust/schist_actualbudget_importer/src/models/mod.rs
deleted file mode 100644
index 1c97c65..0000000
--- a/rust/schist_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;