diff --git a/server/src/main/java/io/myfinbox/expense/domain/Category.java b/server/src/main/java/io/myfinbox/expense/domain/Category.java index 399a594..611f759 100644 --- a/server/src/main/java/io/myfinbox/expense/domain/Category.java +++ b/server/src/main/java/io/myfinbox/expense/domain/Category.java @@ -17,7 +17,7 @@ * Defines the domain model representation of expense category */ @Entity -@Table(name = "expensecategory") +@Table(name = "expense_category") @Getter @ToString @EqualsAndHashCode diff --git a/server/src/main/java/io/myfinbox/expense/domain/DefaultCategories.java b/server/src/main/java/io/myfinbox/expense/domain/DefaultCategories.java index 5b5e665..2cb5ad5 100644 --- a/server/src/main/java/io/myfinbox/expense/domain/DefaultCategories.java +++ b/server/src/main/java/io/myfinbox/expense/domain/DefaultCategories.java @@ -16,8 +16,6 @@ public enum DefaultCategories { CLOTHING("Clothing"), FUN("Fun"), PERSONAL("Personal"), - LOAN("Loan"), - BUSINESS("Business"), OTHER("Other"); public final String text; diff --git a/server/src/main/java/io/myfinbox/income/domain/IncomeSource.java b/server/src/main/java/io/myfinbox/income/domain/IncomeSource.java index 2921a2f..1f7ab72 100644 --- a/server/src/main/java/io/myfinbox/income/domain/IncomeSource.java +++ b/server/src/main/java/io/myfinbox/income/domain/IncomeSource.java @@ -17,7 +17,7 @@ * Defines the domain model representation of income source */ @Entity -@Table(name = "incomesource") +@Table(name = "income_source") @Getter @ToString @EqualsAndHashCode diff --git a/server/src/main/java/io/myfinbox/shared/PaymentType.java b/server/src/main/java/io/myfinbox/shared/PaymentType.java index 6f00386..ac39826 100644 --- a/server/src/main/java/io/myfinbox/shared/PaymentType.java +++ b/server/src/main/java/io/myfinbox/shared/PaymentType.java @@ -13,7 +13,7 @@ public enum PaymentType { public static boolean containsValue(String value) { for (var b : values()) { - if (b.value.equals(value)) + if (b.value.equalsIgnoreCase(value)) return true; } @@ -22,7 +22,7 @@ public static boolean containsValue(String value) { public static PaymentType fromValue(String value) { for (var b : values()) { - if (b.value.equals(value)) + if (b.value.equalsIgnoreCase(value)) return b; } diff --git a/server/src/main/java/io/myfinbox/spendingplan/domain/Jar.java b/server/src/main/java/io/myfinbox/spendingplan/domain/Jar.java index 145b799..d41bfbb 100644 --- a/server/src/main/java/io/myfinbox/spendingplan/domain/Jar.java +++ b/server/src/main/java/io/myfinbox/spendingplan/domain/Jar.java @@ -9,6 +9,7 @@ import javax.money.MonetaryAmount; import java.io.Serializable; import java.math.BigDecimal; +import java.math.RoundingMode; import java.time.Instant; import java.util.UUID; @@ -16,7 +17,7 @@ import static lombok.AccessLevel.PRIVATE; @Entity -@Table(name = "spendingjars") +@Table(name = "spending_jars") @Getter @ToString @EqualsAndHashCode @@ -75,7 +76,8 @@ private void setAmountToReach(MonetaryAmount amountToReach) { @JsonIgnore public BigDecimal getAmountToReachAsNumber() { - return amountToReach.getNumber().numberValue(BigDecimal.class); + return amountToReach.getNumber().numberValue(BigDecimal.class) + .setScale(2, RoundingMode.HALF_UP); } @JsonIgnore diff --git a/server/src/main/java/io/myfinbox/spendingplan/domain/Plan.java b/server/src/main/java/io/myfinbox/spendingplan/domain/Plan.java index 4206567..f06964c 100644 --- a/server/src/main/java/io/myfinbox/spendingplan/domain/Plan.java +++ b/server/src/main/java/io/myfinbox/spendingplan/domain/Plan.java @@ -20,7 +20,7 @@ import static lombok.AccessLevel.PRIVATE; @Entity -@Table(name = "spendingplans") +@Table(name = "spending_plans") @Getter @ToString @EqualsAndHashCode(callSuper = false) diff --git a/server/src/main/resources/application.properties b/server/src/main/resources/application.properties index 0a5510d..356031c 100644 --- a/server/src/main/resources/application.properties +++ b/server/src/main/resources/application.properties @@ -5,6 +5,7 @@ server.servlet.context-path=/api spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.web.servlet.error.ErrorMvcAutoConfiguration spring.jackson.default-property-inclusion=non_empty spring.web.resources.add-mappings=false +# # Database props spring.datasource.url=jdbc:postgresql://${POSTGRES_HOST:localhost}:${POSTGRES_PORT:5432}/${POSTGRES_DB_NAME:myfinboxdb}?currentSchema=server spring.datasource.username=${POSTGRES_DB_USER:application} @@ -16,4 +17,5 @@ spring.jpa.properties.hibernate.order_inserts=true spring.jpa.properties.hibernate.order_updates=true spring.jpa.properties.hibernate.default_schema=server # +# spring.modulith.events.jdbc.schema-initialization.enabled=true diff --git a/server/src/main/resources/db/migration/V1__accounts_schema.sql b/server/src/main/resources/db/migration/V1_01__accounts_schema.sql similarity index 100% rename from server/src/main/resources/db/migration/V1__accounts_schema.sql rename to server/src/main/resources/db/migration/V1_01__accounts_schema.sql diff --git a/server/src/main/resources/db/migration/V2__expense_category_schema.sql b/server/src/main/resources/db/migration/V1_02__expense_category_schema.sql similarity index 66% rename from server/src/main/resources/db/migration/V2__expense_category_schema.sql rename to server/src/main/resources/db/migration/V1_02__expense_category_schema.sql index 6aa8b5d..787742d 100644 --- a/server/src/main/resources/db/migration/V2__expense_category_schema.sql +++ b/server/src/main/resources/db/migration/V1_02__expense_category_schema.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS expensecategory +CREATE TABLE IF NOT EXISTS expense_category ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), account_id UUID NOT NULL, @@ -6,5 +6,5 @@ CREATE TABLE IF NOT EXISTS expensecategory creation_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -CREATE INDEX expense_category_account_id_idx ON expensecategory (account_id); -CREATE UNIQUE INDEX unique_category_name_account_id_idx ON expensecategory (account_id, name); +CREATE INDEX expense_category_account_id_idx ON expense_category (account_id); +CREATE UNIQUE INDEX unique_category_name_account_id_idx ON expense_category (account_id, name); diff --git a/server/src/main/resources/db/migration/V3__income_source_schema.sql b/server/src/main/resources/db/migration/V1_03__income_source_schema.sql similarity index 64% rename from server/src/main/resources/db/migration/V3__income_source_schema.sql rename to server/src/main/resources/db/migration/V1_03__income_source_schema.sql index 14c6aa7..daef9c9 100644 --- a/server/src/main/resources/db/migration/V3__income_source_schema.sql +++ b/server/src/main/resources/db/migration/V1_03__income_source_schema.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS incomesource +CREATE TABLE IF NOT EXISTS income_source ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), account_id UUID NOT NULL, @@ -6,5 +6,5 @@ CREATE TABLE IF NOT EXISTS incomesource creation_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ); -CREATE UNIQUE INDEX unique_source_name_account_id_idx ON incomesource (account_id, name); -CREATE UNIQUE INDEX unique_income_source_name_account_id_idx ON incomesource (account_id, name); +CREATE UNIQUE INDEX unique_source_name_account_id_idx ON income_source (account_id, name); +CREATE UNIQUE INDEX unique_income_source_name_account_id_idx ON income_source (account_id, name); diff --git a/server/src/main/resources/db/migration/V4__expenses_schema.sql b/server/src/main/resources/db/migration/V1_04__expenses_schema.sql similarity index 88% rename from server/src/main/resources/db/migration/V4__expenses_schema.sql rename to server/src/main/resources/db/migration/V1_04__expenses_schema.sql index 1784c56..40dd954 100644 --- a/server/src/main/resources/db/migration/V4__expenses_schema.sql +++ b/server/src/main/resources/db/migration/V1_04__expenses_schema.sql @@ -9,5 +9,5 @@ CREATE TABLE IF NOT EXISTS expenses expense_date DATE NOT NULL, description TEXT, category_id UUID NOT NULL, - FOREIGN KEY (category_id) REFERENCES expensecategory (id) + FOREIGN KEY (category_id) REFERENCES expense_category (id) ); diff --git a/server/src/main/resources/db/migration/V5__incomes_schema.sql b/server/src/main/resources/db/migration/V1_05__incomes_schema.sql similarity index 88% rename from server/src/main/resources/db/migration/V5__incomes_schema.sql rename to server/src/main/resources/db/migration/V1_05__incomes_schema.sql index 9074dca..783a34f 100644 --- a/server/src/main/resources/db/migration/V5__incomes_schema.sql +++ b/server/src/main/resources/db/migration/V1_05__incomes_schema.sql @@ -9,5 +9,5 @@ CREATE TABLE IF NOT EXISTS incomes income_date DATE NOT NULL, description TEXT, income_source_id UUID NOT NULL, - FOREIGN KEY (income_source_id) REFERENCES incomesource (id) + FOREIGN KEY (income_source_id) REFERENCES income_source (id) ); diff --git a/server/src/main/resources/db/migration/V6__spending_plan_schema.sql b/server/src/main/resources/db/migration/V1_06__spending_plan_schema.sql similarity index 85% rename from server/src/main/resources/db/migration/V6__spending_plan_schema.sql rename to server/src/main/resources/db/migration/V1_06__spending_plan_schema.sql index 5aa4d83..2063e3b 100644 --- a/server/src/main/resources/db/migration/V6__spending_plan_schema.sql +++ b/server/src/main/resources/db/migration/V1_06__spending_plan_schema.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS spendingplans +CREATE TABLE IF NOT EXISTS spending_plans ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), creation_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -10,4 +10,4 @@ CREATE TABLE IF NOT EXISTS spendingplans ) ; -CREATE UNIQUE INDEX unique_spending_plan_name_account_id_idx ON spendingplans (account_id, name); +CREATE UNIQUE INDEX unique_spending_plan_name_account_id_idx ON spending_plans (account_id, name); diff --git a/server/src/main/resources/db/migration/V7__spending_jar_schema.sql b/server/src/main/resources/db/migration/V1_07__spending_jar_schema.sql similarity index 71% rename from server/src/main/resources/db/migration/V7__spending_jar_schema.sql rename to server/src/main/resources/db/migration/V1_07__spending_jar_schema.sql index ee57104..e8b18b7 100644 --- a/server/src/main/resources/db/migration/V7__spending_jar_schema.sql +++ b/server/src/main/resources/db/migration/V1_07__spending_jar_schema.sql @@ -1,4 +1,4 @@ -CREATE TABLE IF NOT EXISTS spendingjars +CREATE TABLE IF NOT EXISTS spending_jars ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), creation_timestamp TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, @@ -8,10 +8,10 @@ CREATE TABLE IF NOT EXISTS spendingjars percentage INTEGER NOT NULL, description TEXT, plan_id UUID NOT NULL, - FOREIGN KEY (plan_id) REFERENCES spendingplans (id) + FOREIGN KEY (plan_id) REFERENCES spending_plans (id) ) ; -CREATE UNIQUE INDEX unique_spending_jar_name_plan_id_idx ON spendingjars (name, plan_id); +CREATE UNIQUE INDEX unique_spending_jar_name_plan_id_idx ON spending_jars (name, plan_id); -CREATE INDEX search_spending_plan_id_idx ON spendingjars (plan_id); +CREATE INDEX search_spending_plan_id_idx ON spending_jars (plan_id); diff --git a/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseCategoryControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseCategoryControllerSpec.groovy index 8e958fc..c07381a 100644 --- a/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseCategoryControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseCategoryControllerSpec.groovy @@ -39,7 +39,7 @@ class ExpenseCategoryControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'expenses', 'expensecategory') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'expenses', 'expense_category') } def "Should create a new category expense"() { diff --git a/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseControllerSpec.groovy index bb66d1e..bf8f675 100644 --- a/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/expense/adapter/web/ExpenseControllerSpec.groovy @@ -47,7 +47,7 @@ class ExpenseControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'expenses', 'expensecategory') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'expenses', 'expense_category') } @Sql('/expense/web/expensecategory-create.sql') diff --git a/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeControllerSpec.groovy index 54f8888..8304462 100644 --- a/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeControllerSpec.groovy @@ -47,7 +47,7 @@ class IncomeControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'incomes', 'incomesource') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'incomes', 'income_source') } @Sql('/income/web/incomesource-create.sql') diff --git a/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeSourceControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeSourceControllerSpec.groovy index fb30f94..be3d710 100644 --- a/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeSourceControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/income/adapter/web/IncomeSourceControllerSpec.groovy @@ -39,7 +39,7 @@ class IncomeSourceControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'incomes', 'incomesource') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'incomes', 'income_source') } def "should create a new income source"() { diff --git a/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/JarControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/JarControllerSpec.groovy index a56f69a..3aa2335 100644 --- a/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/JarControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/JarControllerSpec.groovy @@ -39,7 +39,7 @@ class JarControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'spendingjars', 'spendingplans') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'spending_jars', 'spending_plans') } @Sql('/spendingplan/web/plan-create.sql') diff --git a/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/PlanControllerSpec.groovy b/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/PlanControllerSpec.groovy index 93b74ce..c69bdc4 100644 --- a/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/PlanControllerSpec.groovy +++ b/server/src/test/groovy/io/myfinbox/spendingplan/adapter/web/PlanControllerSpec.groovy @@ -38,7 +38,7 @@ class PlanControllerSpec extends Specification { TestRestTemplate restTemplate def cleanup() { - JdbcTestUtils.deleteFromTables(jdbcTemplate, 'spendingjars', 'spendingplans') + JdbcTestUtils.deleteFromTables(jdbcTemplate, 'spending_jars', 'spending_plans') } def "should create a new spending plan"() { diff --git a/server/src/test/resources/expense/web/expensecategory-create.sql b/server/src/test/resources/expense/web/expensecategory-create.sql index 3e90413..7349f8e 100644 --- a/server/src/test/resources/expense/web/expensecategory-create.sql +++ b/server/src/test/resources/expense/web/expensecategory-create.sql @@ -1,6 +1,6 @@ -INSERT INTO server.expensecategory (id, - account_id, - name) +INSERT INTO server.expense_category (id, + account_id, + name) VALUES ('3b257779-a5db-4e87-9365-72c6f8d4977d', 'e2709aa2-7907-4f78-98b6-0f36a0c1b5ca', 'Bills'), diff --git a/server/src/test/resources/income/web/incomesource-create.sql b/server/src/test/resources/income/web/incomesource-create.sql index 3f46fcd..bd2bb39 100644 --- a/server/src/test/resources/income/web/incomesource-create.sql +++ b/server/src/test/resources/income/web/incomesource-create.sql @@ -1,6 +1,6 @@ -INSERT INTO server.incomesource (id, - account_id, - name) +INSERT INTO server.income_source (id, + account_id, + name) VALUES ('3b257779-a5db-4e87-9365-72c6f8d4977d', 'e2709aa2-7907-4f78-98b6-0f36a0c1b5ca', 'Bills'), diff --git a/server/src/test/resources/spendingplan/web/jars-create.sql b/server/src/test/resources/spendingplan/web/jars-create.sql index 790b958..53ad5f1 100644 --- a/server/src/test/resources/spendingplan/web/jars-create.sql +++ b/server/src/test/resources/spendingplan/web/jars-create.sql @@ -1,11 +1,11 @@ -INSERT INTO server.spendingjars(id, - creation_timestamp, - name, - amount_to_reach, - currency, - percentage, - description, - plan_id) +INSERT INTO server.spending_jars(id, + creation_timestamp, + name, + amount_to_reach, + currency, + percentage, + description, + plan_id) VALUES ('e2709aa2-7907-4f78-98b6-0f36a0c1b5ca', '2024-03-23T10:00:04.224870Z', 'Necessities', diff --git a/server/src/test/resources/spendingplan/web/plan-create.sql b/server/src/test/resources/spendingplan/web/plan-create.sql index 993ef1e..f7858c2 100644 --- a/server/src/test/resources/spendingplan/web/plan-create.sql +++ b/server/src/test/resources/spendingplan/web/plan-create.sql @@ -1,10 +1,10 @@ -INSERT INTO server.spendingplans(id, - creation_timestamp, - account_id, - name, - amount, - currency, - description) +INSERT INTO server.spending_plans(id, + creation_timestamp, + account_id, + name, + amount, + currency, + description) VALUES ('3b257779-a5db-4e87-9365-72c6f8d4977d', '2024-03-23T10:00:04.224870Z', 'e2709aa2-7907-4f78-98b6-0f36a0c1b5ca',