From ee3cd780e21260257b401c3f5cbababd9e27a15a Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Wed, 13 Aug 2025 07:50:21 +0000 Subject: task-073 Co-authored-by: Joe Carstairs Reviewed-on: https://git.joeac.net/joeac/schist/pulls/1 Co-authored-by: Joe Carstairs Co-committed-by: Joe Carstairs --- schist_core/schist_fakes/src/bucket.rs | 24 ++++++++++++++++++ schist_core/schist_fakes/src/category.rs | 19 -------------- schist_core/schist_fakes/src/category_transfer.rs | 8 +++--- schist_core/schist_fakes/src/lib.rs | 2 +- schist_core/schist_models/src/bucket.rs | 29 ++++++++++++++++++++++ schist_core/schist_models/src/bucket_transfer.rs | 12 +++++++++ schist_core/schist_models/src/category.rs | 17 ------------- schist_core/schist_models/src/category_transfer.rs | 12 --------- schist_core/schist_models/src/lib.rs | 6 ++--- schist_core/schist_models/src/schema.rs | 1 + 10 files changed, 74 insertions(+), 56 deletions(-) create mode 100644 schist_core/schist_fakes/src/bucket.rs delete mode 100644 schist_core/schist_fakes/src/category.rs create mode 100644 schist_core/schist_models/src/bucket.rs create mode 100644 schist_core/schist_models/src/bucket_transfer.rs delete mode 100644 schist_core/schist_models/src/category.rs delete mode 100644 schist_core/schist_models/src/category_transfer.rs (limited to 'schist_core') diff --git a/schist_core/schist_fakes/src/bucket.rs b/schist_core/schist_fakes/src/bucket.rs new file mode 100644 index 0000000..1b447b2 --- /dev/null +++ b/schist_core/schist_fakes/src/bucket.rs @@ -0,0 +1,24 @@ +use schist_models::{ + bucket::{Bucket, BucketBuilder}, + budget_period_unit::BudgetPeriodUnit, + date_utc::DateUtc, +}; +use schist_traits::nowlike::Nowlike; + +pub fn make_fake_bucket(id: i32) -> Bucket { + make_fake_bucket_builder(id).build().unwrap() +} + +pub fn make_fake_bucket_builder(id: i32) -> BucketBuilder { + let mut builder = BucketBuilder::default(); + builder + .id(id) + .name(String::from("Fake bucket")) + .balance(0) + .balance_date(DateUtc::now()) + .budget_period(0) + .budget_period_unit(BudgetPeriodUnit::Day) + .budget_quantity(0) + .group(String::from("Fake group")); + builder +} diff --git a/schist_core/schist_fakes/src/category.rs b/schist_core/schist_fakes/src/category.rs deleted file mode 100644 index c64818d..0000000 --- a/schist_core/schist_fakes/src/category.rs +++ /dev/null @@ -1,19 +0,0 @@ -use schist_models::{budget_period_unit::BudgetPeriodUnit, category::{Category, CategoryBuilder}, date_utc::DateUtc}; -use schist_traits::nowlike::Nowlike; - -pub fn make_fake_category(id: i32) -> Category { - make_fake_category_builder(id).build().unwrap() -} - -pub fn make_fake_category_builder(id: i32) -> CategoryBuilder { - let mut builder = CategoryBuilder::default(); - builder - .id(id) - .name(String::from("Fake category")) - .balance(0) - .balance_date(DateUtc::now()) - .budget_period(0) - .budget_period_unit(BudgetPeriodUnit::Day) - .budget_quantity(0); - builder -} diff --git a/schist_core/schist_fakes/src/category_transfer.rs b/schist_core/schist_fakes/src/category_transfer.rs index c28dffb..a16d238 100644 --- a/schist_core/schist_fakes/src/category_transfer.rs +++ b/schist_core/schist_fakes/src/category_transfer.rs @@ -1,11 +1,11 @@ -use schist_models::category_transfer::{CategoryTransfer, CategoryTransferBuilder}; +use schist_models::bucket_transfer::{BucketTransfer, BucketTransferBuilder}; -pub fn make_fake_category_transfer(id: i32) -> CategoryTransfer { +pub fn make_fake_category_transfer(id: i32) -> BucketTransfer { make_fake_category_transfer_builder(id).build().unwrap() } -pub fn make_fake_category_transfer_builder(id: i32) -> CategoryTransferBuilder { - let mut builder = CategoryTransferBuilder::default(); +pub fn make_fake_category_transfer_builder(id: i32) -> BucketTransferBuilder { + let mut builder = BucketTransferBuilder::default(); builder .id(id) .description(String::from("Fake category transfer")) diff --git a/schist_core/schist_fakes/src/lib.rs b/schist_core/schist_fakes/src/lib.rs index 6e20c31..4a22169 100644 --- a/schist_core/schist_fakes/src/lib.rs +++ b/schist_core/schist_fakes/src/lib.rs @@ -1,7 +1,7 @@ pub mod account; pub mod account_transfer; +pub mod bucket; pub mod budget_drip; -pub mod category; pub mod category_transfer; pub mod transaction; pub mod transaction_categorisation; diff --git a/schist_core/schist_models/src/bucket.rs b/schist_core/schist_models/src/bucket.rs new file mode 100644 index 0000000..f162405 --- /dev/null +++ b/schist_core/schist_models/src/bucket.rs @@ -0,0 +1,29 @@ +use derive_builder::Builder; +use diesel::prelude::*; +use serde::{Deserialize, Serialize}; + +use crate::{budget_period_unit::BudgetPeriodUnit, date_utc::DateUtc}; + +#[derive( + Builder, + Clone, + Queryable, + Identifiable, + Selectable, + Debug, + PartialEq, + Serialize, + Deserialize, + Insertable, +)] +#[diesel(table_name = crate::schema::categories)] +pub struct Bucket { + pub id: i32, + pub name: String, + pub balance: i32, + pub balance_date: DateUtc, + pub budget_period: i32, + pub budget_period_unit: BudgetPeriodUnit, + pub budget_quantity: i32, + pub group: String, +} diff --git a/schist_core/schist_models/src/bucket_transfer.rs b/schist_core/schist_models/src/bucket_transfer.rs new file mode 100644 index 0000000..5d2e268 --- /dev/null +++ b/schist_core/schist_models/src/bucket_transfer.rs @@ -0,0 +1,12 @@ +use derive_builder::Builder; +use diesel::prelude::*; + +#[derive(Builder, Queryable, Identifiable, Selectable, Debug, PartialEq, Insertable)] +#[diesel(table_name = crate::schema::category_transfers)] +pub struct BucketTransfer { + pub id: i32, + pub description: String, + pub quantity: i32, + pub from_category_id: i32, + pub to_category_id: i32, +} diff --git a/schist_core/schist_models/src/category.rs b/schist_core/schist_models/src/category.rs deleted file mode 100644 index e3c9938..0000000 --- a/schist_core/schist_models/src/category.rs +++ /dev/null @@ -1,17 +0,0 @@ -use derive_builder::Builder; -use diesel::prelude::*; -use serde::{Deserialize, Serialize}; - -use crate::{budget_period_unit::BudgetPeriodUnit, date_utc::DateUtc}; - -#[derive(Builder, Clone, Queryable, Identifiable, Selectable, Debug, PartialEq, Serialize, Deserialize, Insertable)] -#[diesel(table_name = crate::schema::categories)] -pub struct Category { - pub id: i32, - pub name: String, - pub balance: i32, - pub balance_date: DateUtc, - pub budget_period: i32, - pub budget_period_unit: BudgetPeriodUnit, - pub budget_quantity: i32, -} diff --git a/schist_core/schist_models/src/category_transfer.rs b/schist_core/schist_models/src/category_transfer.rs deleted file mode 100644 index 7b36054..0000000 --- a/schist_core/schist_models/src/category_transfer.rs +++ /dev/null @@ -1,12 +0,0 @@ -use derive_builder::Builder; -use diesel::prelude::*; - -#[derive(Builder, Queryable, Identifiable, Selectable, Debug, PartialEq, Insertable)] -#[diesel(table_name = crate::schema::category_transfers)] -pub struct CategoryTransfer { - pub id: i32, - pub description: String, - pub quantity: i32, - pub from_category_id: i32, - pub to_category_id: i32, -} diff --git a/schist_core/schist_models/src/lib.rs b/schist_core/schist_models/src/lib.rs index d9e93c4..db5c593 100644 --- a/schist_core/schist_models/src/lib.rs +++ b/schist_core/schist_models/src/lib.rs @@ -1,12 +1,12 @@ pub mod account; pub mod account_transfer; +pub mod bucket; +pub mod bucket_transfer; pub mod budget_drip; pub mod budget_period_unit; -pub mod category; -pub mod category_transfer; pub mod date_utc; pub mod datetime_utc; pub mod migrations; +pub mod schema; pub mod transaction; pub mod transaction_categorisation; -pub mod schema; diff --git a/schist_core/schist_models/src/schema.rs b/schist_core/schist_models/src/schema.rs index 1dd1391..40af56f 100644 --- a/schist_core/schist_models/src/schema.rs +++ b/schist_core/schist_models/src/schema.rs @@ -38,6 +38,7 @@ diesel::table! { budget_period -> Integer, budget_period_unit -> Text, budget_quantity -> Integer, + group -> Text, } } -- cgit v1.2.3