From ad0bce4eba6814cfe08074f80b5d575dced1485f Mon Sep 17 00:00:00 2001 From: Miroslav Vasilev Date: Wed, 27 Dec 2023 18:15:42 +0200 Subject: [PATCH] Categorization, TransactionCategories, TransactionMapping --- .idea/gradle.xml | 2 +- .idea/misc.xml | 2 +- .idea/sqldialects.xml | 7 + Common/build.gradle | 1 + .../controller/AbstractRestController.java | 33 ++- .../common/data/AbstractEnumConverter.java | 31 ++ .../common/data/PersistableEnum.java | 7 + .../dev/mvvasilev/common/data/UserOwned.java | 7 + .../exceptions/CommonFinancesException.java | 8 + .../mvvasilev/common/web/CrudResponseDTO.java | 8 + PersonalFinancesService/build.gradle | 4 +- .../configuration/SecurityConfiguration.java | 5 +- .../controllers/CategoriesController.java | 85 ++++++ .../finances/controllers/DebugController.java | 2 +- .../ProcessedTransactionsController.java | 19 ++ .../controllers/StatementsController.java | 59 +++- .../finances/dtos/CategorizationDTO.java | 30 ++ .../mvvasilev/finances/dtos/CategoryDTO.java | 7 + .../dtos/CreateCategorizationDTO.java | 36 +++ .../finances/dtos/CreateCategoryDTO.java | 11 + .../dtos/CreateTransactionMappingDTO.java | 12 + .../finances/dtos/TransactionMappingDTO.java | 10 + .../finances/dtos/UpdateCategoryDTO.java | 11 + .../finances/entity/Categorization.java | 152 ++++++++++ .../finances/entity/ProcessedTransaction.java | 29 +- .../entity/ProcessedTransactionCategory.java | 51 ++++ .../finances/entity/RawStatement.java | 3 +- .../finances/entity/TransactionCategory.java | 3 +- .../finances/entity/TransactionMapping.java | 40 ++- .../finances/enums/CategorizationRule.java | 42 +++ .../enums/ProcessedTransactionField.java | 33 +++ .../enums/RawTransactionValueType.java | 12 +- .../persistence/CategorizationRepository.java | 37 +++ ...rocessedTransactionCategoryRepository.java | 10 + .../ProcessedTransactionRepository.java | 16 + .../RawTransactionValueGroupRepository.java | 20 +- .../TransactionCategoryRepository.java | 19 ++ .../TransactionMappingRepository.java | 26 ++ .../persistence/dtos/RawTransactionDTO.java | 4 + .../services/AuthorizationService.java | 52 ++++ .../finances/services/CategoryService.java | 276 ++++++++++++++++++ .../finances/services/StatementsService.java | 87 ++++-- ...10__CreateProcessedTransactionCategory.sql | 8 + .../V1.11__CreateTransactionMapping.sql | 9 + .../migration/V1.12__CreateCategorization.sql | 22 ++ .../V1.1__AddUserIdToRawStatement.sql | 2 +- ...__AddBooleanValueToRawTransactionValue.sql | 2 +- .../V1.5__AddUserIdToTransactionCategory.sql | 4 +- ...V1.6__AddRowIndexToRawTransactionValue.sql | 2 +- .../migration/V1.7__AddNameToRawStatement.sql | 2 +- ...rProcessedTransaction_RemoveCategoryId.sql | 2 + 51 files changed, 1267 insertions(+), 95 deletions(-) create mode 100644 .idea/sqldialects.xml create mode 100644 Common/src/main/java/dev/mvvasilev/common/data/AbstractEnumConverter.java create mode 100644 Common/src/main/java/dev/mvvasilev/common/data/PersistableEnum.java create mode 100644 Common/src/main/java/dev/mvvasilev/common/data/UserOwned.java create mode 100644 Common/src/main/java/dev/mvvasilev/common/web/CrudResponseDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/controllers/CategoriesController.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/controllers/ProcessedTransactionsController.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/CategorizationDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/CategoryDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/CreateCategorizationDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/CreateCategoryDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/CreateTransactionMappingDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/TransactionMappingDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/dtos/UpdateCategoryDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/entity/Categorization.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/entity/ProcessedTransactionCategory.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/enums/CategorizationRule.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/enums/ProcessedTransactionField.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/CategorizationRepository.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/ProcessedTransactionCategoryRepository.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/ProcessedTransactionRepository.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/TransactionCategoryRepository.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/TransactionMappingRepository.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/persistence/dtos/RawTransactionDTO.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/AuthorizationService.java create mode 100644 PersonalFinancesService/src/main/java/dev/mvvasilev/finances/services/CategoryService.java create mode 100644 PersonalFinancesService/src/main/resources/db/migration/V1.10__CreateProcessedTransactionCategory.sql create mode 100644 PersonalFinancesService/src/main/resources/db/migration/V1.11__CreateTransactionMapping.sql create mode 100644 PersonalFinancesService/src/main/resources/db/migration/V1.12__CreateCategorization.sql create mode 100644 PersonalFinancesService/src/main/resources/db/migration/V1.9__AlterProcessedTransaction_RemoveCategoryId.sql diff --git a/.idea/gradle.xml b/.idea/gradle.xml index 08300ac..f261649 100644 --- a/.idea/gradle.xml +++ b/.idea/gradle.xml @@ -5,7 +5,7 @@