From 95d4db4da725b74999524a1307e5e17b434dbfeb Mon Sep 17 00:00:00 2001 From: Joe Carstairs Date: Sat, 31 Aug 2024 22:43:00 +0100 Subject: Backend --- backend/src/models/account.rs | 13 +++++++++++++ backend/src/models/budget_update.rs | 14 ++++++++++++++ backend/src/models/category.rs | 10 ++++++++++ backend/src/models/category_transaction.rs | 10 ++++++++++ backend/src/models/category_transfer.rs | 11 +++++++++++ backend/src/models/mod.rs | 6 ++++++ backend/src/models/transaction.rs | 14 ++++++++++++++ 7 files changed, 78 insertions(+) create mode 100644 backend/src/models/account.rs create mode 100644 backend/src/models/budget_update.rs create mode 100644 backend/src/models/category.rs create mode 100644 backend/src/models/category_transaction.rs create mode 100644 backend/src/models/category_transfer.rs create mode 100644 backend/src/models/mod.rs create mode 100644 backend/src/models/transaction.rs (limited to 'backend/src/models') diff --git a/backend/src/models/account.rs b/backend/src/models/account.rs new file mode 100644 index 0000000..1a2aa41 --- /dev/null +++ b/backend/src/models/account.rs @@ -0,0 +1,13 @@ +use diesel::prelude::*; +use serde::{Deserialize, Serialize}; + +#[derive( + Insertable, Queryable, Identifiable, Selectable, Debug, PartialEq, Clone, Serialize, Deserialize, +)] +#[diesel(table_name = crate::schema::accounts)] +pub struct Account { + pub id: i32, + pub name: String, + pub opening_balance: i32, + pub opening_date: String, +} diff --git a/backend/src/models/budget_update.rs b/backend/src/models/budget_update.rs new file mode 100644 index 0000000..3843455 --- /dev/null +++ b/backend/src/models/budget_update.rs @@ -0,0 +1,14 @@ +use diesel::prelude::*; + +use crate::models::category::Category; + +#[derive(Queryable, Identifiable, Selectable, Associations, Debug, PartialEq)] +#[diesel(table_name = crate::schema::budget_updates)] +#[diesel(belongs_to(Category))] +pub struct BudgetUpdate { + pub id: i32, + pub category_id: i32, + pub date: String, + pub new_budget: i32, + pub new_period: i32, +} diff --git a/backend/src/models/category.rs b/backend/src/models/category.rs new file mode 100644 index 0000000..d7e25aa --- /dev/null +++ b/backend/src/models/category.rs @@ -0,0 +1,10 @@ +use diesel::prelude::*; + +#[derive(Queryable, Identifiable, Selectable, Debug, PartialEq)] +#[diesel(table_name = crate::schema::categories)] +pub struct Category { + pub id: i32, + pub name: String, + pub initial_budget: i32, + pub initial_period: i32, +} diff --git a/backend/src/models/category_transaction.rs b/backend/src/models/category_transaction.rs new file mode 100644 index 0000000..2163860 --- /dev/null +++ b/backend/src/models/category_transaction.rs @@ -0,0 +1,10 @@ +use diesel::prelude::*; + +#[derive(Queryable, Identifiable, Selectable, Debug, PartialEq)] +#[diesel(table_name = crate::schema::category_transactions)] +pub struct CategoryTransaction { + pub id: i32, + pub description: String, + pub quantity: i32, + pub category_id: i32, +} diff --git a/backend/src/models/category_transfer.rs b/backend/src/models/category_transfer.rs new file mode 100644 index 0000000..6cbda0e --- /dev/null +++ b/backend/src/models/category_transfer.rs @@ -0,0 +1,11 @@ +use diesel::prelude::*; + +#[derive(Queryable, Identifiable, Selectable, Debug, PartialEq)] +#[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/backend/src/models/mod.rs b/backend/src/models/mod.rs new file mode 100644 index 0000000..f70212a --- /dev/null +++ b/backend/src/models/mod.rs @@ -0,0 +1,6 @@ +pub mod account; +pub mod budget_update; +pub mod category; +pub mod category_transaction; +pub mod category_transfer; +pub mod transaction; diff --git a/backend/src/models/transaction.rs b/backend/src/models/transaction.rs new file mode 100644 index 0000000..a83a0ad --- /dev/null +++ b/backend/src/models/transaction.rs @@ -0,0 +1,14 @@ +use diesel::prelude::*; + +use crate::models::account::Account; + +#[derive(Queryable, Identifiable, Selectable, Associations, Debug, PartialEq)] +#[diesel(table_name = crate::schema::transactions)] +#[diesel(belongs_to(Account))] +pub struct Transaction { + pub id: i32, + pub description: String, + pub payee: String, + pub quantity: i32, + pub account_id: i32, +} -- cgit v1.2.3