summaryrefslogtreecommitdiff
path: root/gui/src/types
diff options
context:
space:
mode:
authorJoe Carstairs <me@joeac.net>2024-10-22 07:46:43 +0100
committerJoe Carstairs <me@joeac.net>2024-10-22 07:46:43 +0100
commit5824c353f978a5b9ab9696451ee3014c6a614ffc (patch)
treebc39754ca417e84eb00b0aa9a1ae2330da0bf282 /gui/src/types
parent7adaace61a4fe983eba5ded3aaaf624ce6fb9014 (diff)
Refactors importer to use core stuff
Diffstat (limited to 'gui/src/types')
-rw-r--r--gui/src/types/budgetUpdate.ts31
-rw-r--r--gui/src/types/category.ts3
-rw-r--r--gui/src/types/group.ts8
3 files changed, 42 insertions, 0 deletions
diff --git a/gui/src/types/budgetUpdate.ts b/gui/src/types/budgetUpdate.ts
new file mode 100644
index 0000000..0696f8a
--- /dev/null
+++ b/gui/src/types/budgetUpdate.ts
@@ -0,0 +1,31 @@
+import moment, { Moment } from "moment";
+import Currency from "./currency/currency";
+
+interface BudgetUpdate {
+ id: number;
+ categoryId: number;
+ date: Moment;
+ newQuantity: Currency;
+ newPeriod: number;
+}
+
+interface BudgetUpdateDto {
+ id: number;
+ category_id: number;
+ date: string;
+ new_budget: number;
+ new_period: number;
+}
+
+function newBudgetUpdateFromDto(dto: unknown): BudgetUpdate {
+ const typedDto = dto as BudgetUpdateDto;
+ return {
+ id: typedDto.id,
+ categoryId: typedDto.category_id,
+ date: moment(typedDto.date),
+ newQuantity: typedDto.new_budget,
+ newPeriod: typedDto.new_period,
+ };
+}
+
+export { type BudgetUpdate, type BudgetUpdateDto, newBudgetUpdateFromDto };
diff --git a/gui/src/types/category.ts b/gui/src/types/category.ts
index 005c041..9c2a651 100644
--- a/gui/src/types/category.ts
+++ b/gui/src/types/category.ts
@@ -7,6 +7,7 @@ import Currency from "./currency/currency";
interface Category {
id: number;
name: string;
+ groupName: string;
currentBalance: Currency;
currentBudget: Budget | null;
balanceToBudgetRatio: BalanceToBudgetRatio | null;
@@ -15,6 +16,7 @@ interface Category {
interface CategoryDto {
id: number;
name: string;
+ group: string;
}
function newCategoryFromDto(
@@ -32,6 +34,7 @@ function newCategoryFromDto(
return {
id: dtoDangerous.id,
name: dtoDangerous.name,
+ groupName: dtoDangerous.group,
currentBalance,
currentBudget,
balanceToBudgetRatio: BalanceToBudgetRatio.new(
diff --git a/gui/src/types/group.ts b/gui/src/types/group.ts
new file mode 100644
index 0000000..4a04019
--- /dev/null
+++ b/gui/src/types/group.ts
@@ -0,0 +1,8 @@
+import { Category } from "./category";
+
+interface Group {
+ name: string;
+ categories: Category[];
+}
+
+export { type Group };