summaryrefslogtreecommitdiff
path: root/backend/src/models
diff options
context:
space:
mode:
Diffstat (limited to 'backend/src/models')
-rw-r--r--backend/src/models/account.rs13
-rw-r--r--backend/src/models/budget_update.rs14
-rw-r--r--backend/src/models/category.rs10
-rw-r--r--backend/src/models/category_transaction.rs10
-rw-r--r--backend/src/models/category_transfer.rs11
-rw-r--r--backend/src/models/mod.rs6
-rw-r--r--backend/src/models/transaction.rs14
7 files changed, 78 insertions, 0 deletions
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,
+}