From 62811ad60b68f9eee7b608de29a57cf155b7640f Mon Sep 17 00:00:00 2001 From: "Sinha, Abhinav" Date: Tue, 19 Sep 2023 12:05:30 -0400 Subject: [PATCH] Add custom Configuration class for collateralmanagement module (FINERACT-1932) --- ...eralManagementReadPlatformServiceImpl.java | 14 +-- ...ralManagementWritePlatformServiceImpl.java | 19 +-- ...eralManagementReadPlatformServiceImpl.java | 12 +- ...ralManagementWritePlatformServiceImpl.java | 13 +-- .../service/LoanCollateralAssembler.java | 15 +-- ...eralManagementReadPlatformServiceImpl.java | 4 - ...ralManagementWritePlatformServiceImpl.java | 12 +- .../CollateralManagementConfiguration.java | 109 ++++++++++++++++++ 8 files changed, 123 insertions(+), 75 deletions(-) create mode 100644 fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/starter/CollateralManagementConfiguration.java diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementReadPlatformServiceImpl.java index 0286cc19a..27d3fbfff 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementReadPlatformServiceImpl.java @@ -23,6 +23,7 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; import java.util.Set; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.portfolio.collateralmanagement.data.ClientCollateralManagementData; import org.apache.fineract.portfolio.collateralmanagement.data.LoanCollateralTemplateData; @@ -33,25 +34,14 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement import org.apache.fineract.portfolio.loanaccount.domain.LoanTransaction; import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository; import org.apache.fineract.portfolio.loanaccount.exception.LoanTransactionNotFoundException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -@Service +@RequiredArgsConstructor public class ClientCollateralManagementReadPlatformServiceImpl implements ClientCollateralManagementReadPlatformService { private final PlatformSecurityContext context; private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper; private final LoanTransactionRepository loanTransactionRepository; - @Autowired - public ClientCollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context, - final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper, - final LoanTransactionRepository loanTransactionRepository) { - this.context = context; - this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper; - this.loanTransactionRepository = loanTransactionRepository; - } - @Override public List getClientCollaterals(final Long clientId, final Long prodId) { return this.clientCollateralManagementRepositoryWrapper.getClientCollateralData(clientId, prodId); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementWritePlatformServiceImpl.java index 95576b97b..67d8ddb77 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/ClientCollateralManagementWritePlatformServiceImpl.java @@ -23,6 +23,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.api.JsonCommand; import org.apache.fineract.infrastructure.core.data.ApiParameterError; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; @@ -39,26 +40,14 @@ import org.apache.fineract.portfolio.collateralmanagement.exception.ClientCollat import org.apache.fineract.portfolio.collateralmanagement.exception.ClientCollateralNotFoundException; import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralNotFoundException; import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -@Service +@RequiredArgsConstructor public class ClientCollateralManagementWritePlatformServiceImpl implements ClientCollateralManagementWritePlatformService { private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper; private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper; private final ClientRepositoryWrapper clientRepositoryWrapper; - @Autowired - public ClientCollateralManagementWritePlatformServiceImpl( - final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper, - final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper, - final ClientRepositoryWrapper clientRepositoryWrapper) { - this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper; - this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper; - this.clientRepositoryWrapper = clientRepositoryWrapper; - } - @Transactional @Override public CommandProcessingResult addClientCollateralProduct(final JsonCommand command) { @@ -136,7 +125,7 @@ public class ClientCollateralManagementWritePlatformServiceImpl implements Clien } BigDecimal totalQuantity = BigDecimal.ZERO; - if (clientCollateralManagement.getLoanCollateralManagementSet().size() > 0) { + if (!clientCollateralManagement.getLoanCollateralManagementSet().isEmpty()) { for (LoanCollateralManagement loanCollateralManagement : clientCollateralManagement.getLoanCollateralManagementSet()) { totalQuantity = totalQuantity.add(loanCollateralManagement.getQuantity()); } @@ -167,7 +156,7 @@ public class ClientCollateralManagementWritePlatformServiceImpl implements Clien throw new CollateralNotFoundException(clientCollateralId); } - if (clientCollateralManagement.getLoanCollateralManagementSet().size() > 0) { + if (!clientCollateralManagement.getLoanCollateralManagementSet().isEmpty()) { for (LoanCollateralManagement loanCollateralManagement : clientCollateralManagement.getLoanCollateralManagementSet()) { if (!loanCollateralManagement.isReleased()) { throw new ClientCollateralCannotBeDeletedException( diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementReadPlatformServiceImpl.java index 2d61ceca9..47432cee6 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementReadPlatformServiceImpl.java @@ -20,26 +20,18 @@ package org.apache.fineract.portfolio.collateralmanagement.service; import java.util.ArrayList; import java.util.List; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; import org.apache.fineract.portfolio.collateralmanagement.data.CollateralManagementData; import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementDomain; import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -@Service +@RequiredArgsConstructor public class CollateralManagementReadPlatformServiceImpl implements CollateralManagementReadPlatformService { private final PlatformSecurityContext context; private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper; - @Autowired - public CollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context, - final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper) { - this.context = context; - this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper; - } - @Override public CollateralManagementData getCollateralProduct(Long collateralId) { final CollateralManagementDomain collateralManagementDomain = this.collateralManagementRepositoryWrapper diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementWritePlatformServiceImpl.java index fcaca36d2..e6a122185 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/CollateralManagementWritePlatformServiceImpl.java @@ -23,6 +23,7 @@ import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import java.util.Map; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.api.JsonCommand; import org.apache.fineract.infrastructure.core.data.ApiParameterError; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; @@ -38,25 +39,15 @@ import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManag import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper; import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralCannotBeDeletedException; import org.apache.fineract.portfolio.collateralmanagement.exception.CollateralNotFoundException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -@Service +@RequiredArgsConstructor public class CollateralManagementWritePlatformServiceImpl implements CollateralManagementWritePlatformService { private final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper; private final ApplicationCurrencyRepository applicationCurrencyRepository; private final FromJsonHelper fromApiJsonHelper; - @Autowired - public CollateralManagementWritePlatformServiceImpl(final CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper, - final ApplicationCurrencyRepository applicationCurrencyRepository, final FromJsonHelper fromApiJsonHelper) { - this.collateralManagementRepositoryWrapper = collateralManagementRepositoryWrapper; - this.applicationCurrencyRepository = applicationCurrencyRepository; - this.fromApiJsonHelper = fromApiJsonHelper; - } - @Transactional @Override public CommandProcessingResult createCollateral(final JsonCommand jsonCommand) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralAssembler.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralAssembler.java index 37b6f48a1..26bdeeb48 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralAssembler.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralAssembler.java @@ -25,6 +25,7 @@ import java.math.BigDecimal; import java.util.HashSet; import java.util.Locale; import java.util.Set; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.codes.domain.CodeValueRepositoryWrapper; import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper; import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagement; @@ -33,10 +34,8 @@ import org.apache.fineract.portfolio.collateralmanagement.exception.LoanCollater import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement; import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository; import org.apache.fineract.portfolio.loanaccount.exception.InvalidAmountOfCollateralQuantity; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -@Service +@RequiredArgsConstructor public class LoanCollateralAssembler { private final FromJsonHelper fromApiJsonHelper; @@ -44,16 +43,6 @@ public class LoanCollateralAssembler { private final LoanCollateralManagementRepository loanCollateralRepository; private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper; - @Autowired - public LoanCollateralAssembler(final FromJsonHelper fromApiJsonHelper, final CodeValueRepositoryWrapper codeValueRepository, - final LoanCollateralManagementRepository loanCollateralRepository, - final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) { - this.fromApiJsonHelper = fromApiJsonHelper; - this.codeValueRepository = codeValueRepository; - this.loanCollateralRepository = loanCollateralRepository; - this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper; - } - public Set fromParsedJson(final JsonElement element) { final Set collateralItems = new HashSet<>(); diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementReadPlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementReadPlatformServiceImpl.java index 88d2a7f19..74dc7787d 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementReadPlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementReadPlatformServiceImpl.java @@ -31,11 +31,8 @@ import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository; import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository; import org.apache.fineract.portfolio.loanaccount.exception.LoanNotFoundException; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -@Service @Transactional(readOnly = true) public class LoanCollateralManagementReadPlatformServiceImpl implements LoanCollateralManagementReadPlatformService { @@ -43,7 +40,6 @@ public class LoanCollateralManagementReadPlatformServiceImpl implements LoanColl private LoanCollateralManagementRepository loanCollateralManagementRepository; private LoanRepository loanRepository; - @Autowired public LoanCollateralManagementReadPlatformServiceImpl(final PlatformSecurityContext context, final LoanCollateralManagementRepository loanCollateralManagementRepository, final LoanRepository loanRepository) { this.context = context; diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementWritePlatformServiceImpl.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementWritePlatformServiceImpl.java index 3f53fc76a..248e9e231 100644 --- a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementWritePlatformServiceImpl.java +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/service/LoanCollateralManagementWritePlatformServiceImpl.java @@ -19,6 +19,7 @@ package org.apache.fineract.portfolio.collateralmanagement.service; import java.math.BigDecimal; +import lombok.RequiredArgsConstructor; import org.apache.fineract.infrastructure.core.api.JsonCommand; import org.apache.fineract.infrastructure.core.data.CommandProcessingResult; import org.apache.fineract.infrastructure.core.data.CommandProcessingResultBuilder; @@ -26,23 +27,14 @@ import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollatera import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagementRepositoryWrapper; import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagement; import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -@Service +@RequiredArgsConstructor public class LoanCollateralManagementWritePlatformServiceImpl implements LoanCollateralManagementWritePlatformService { private final LoanCollateralManagementRepository loanCollateralManagementRepository; private final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper; - @Autowired - public LoanCollateralManagementWritePlatformServiceImpl(final LoanCollateralManagementRepository loanCollateralManagementRepository, - final ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) { - this.loanCollateralManagementRepository = loanCollateralManagementRepository; - this.clientCollateralManagementRepositoryWrapper = clientCollateralManagementRepositoryWrapper; - } - @Transactional @Override public CommandProcessingResult deleteLoanCollateral(JsonCommand command) { diff --git a/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/starter/CollateralManagementConfiguration.java b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/starter/CollateralManagementConfiguration.java new file mode 100644 index 000000000..4c30c3987 --- /dev/null +++ b/fineract-provider/src/main/java/org/apache/fineract/portfolio/collateralmanagement/starter/CollateralManagementConfiguration.java @@ -0,0 +1,109 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.apache.fineract.portfolio.collateralmanagement.starter; + +import org.apache.fineract.infrastructure.codes.domain.CodeValueRepositoryWrapper; +import org.apache.fineract.infrastructure.core.serialization.FromJsonHelper; +import org.apache.fineract.infrastructure.security.service.PlatformSecurityContext; +import org.apache.fineract.organisation.monetary.domain.ApplicationCurrencyRepository; +import org.apache.fineract.portfolio.client.domain.ClientRepositoryWrapper; +import org.apache.fineract.portfolio.collateralmanagement.domain.ClientCollateralManagementRepositoryWrapper; +import org.apache.fineract.portfolio.collateralmanagement.domain.CollateralManagementRepositoryWrapper; +import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementReadPlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementReadPlatformServiceImpl; +import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementWritePlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.ClientCollateralManagementWritePlatformServiceImpl; +import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementReadPlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementReadPlatformServiceImpl; +import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementWritePlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.CollateralManagementWritePlatformServiceImpl; +import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralAssembler; +import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementReadPlatformServiceImpl; +import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementWritePlatformService; +import org.apache.fineract.portfolio.collateralmanagement.service.LoanCollateralManagementWritePlatformServiceImpl; +import org.apache.fineract.portfolio.loanaccount.domain.LoanCollateralManagementRepository; +import org.apache.fineract.portfolio.loanaccount.domain.LoanRepository; +import org.apache.fineract.portfolio.loanaccount.domain.LoanTransactionRepository; +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +@Configuration +public class CollateralManagementConfiguration { + + @Bean + @ConditionalOnMissingBean(ClientCollateralManagementReadPlatformService.class) + public ClientCollateralManagementReadPlatformService clientCollateralManagementReadPlatformService(PlatformSecurityContext context, + ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper, + LoanTransactionRepository loanTransactionRepository) { + return new ClientCollateralManagementReadPlatformServiceImpl(context, clientCollateralManagementRepositoryWrapper, + loanTransactionRepository); + } + + @Bean + @ConditionalOnMissingBean(ClientCollateralManagementWritePlatformService.class) + public ClientCollateralManagementWritePlatformService clientCollateralManagementWritePlatformService( + ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper, + CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper, ClientRepositoryWrapper clientRepositoryWrapper) { + return new ClientCollateralManagementWritePlatformServiceImpl(clientCollateralManagementRepositoryWrapper, + collateralManagementRepositoryWrapper, clientRepositoryWrapper); + } + + @Bean + @ConditionalOnMissingBean(CollateralManagementReadPlatformService.class) + public CollateralManagementReadPlatformService collateralManagementReadPlatformService(PlatformSecurityContext context, + CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper) { + return new CollateralManagementReadPlatformServiceImpl(context, collateralManagementRepositoryWrapper); + } + + @Bean + @ConditionalOnMissingBean(CollateralManagementWritePlatformService.class) + public CollateralManagementWritePlatformService collateralManagementWritePlatformService( + CollateralManagementRepositoryWrapper collateralManagementRepositoryWrapper, + ApplicationCurrencyRepository applicationCurrencyRepository, FromJsonHelper fromApiJsonHelper) { + return new CollateralManagementWritePlatformServiceImpl(collateralManagementRepositoryWrapper, applicationCurrencyRepository, + fromApiJsonHelper); + } + + @Bean + @ConditionalOnMissingBean(LoanCollateralAssembler.class) + public LoanCollateralAssembler loanCollateralAssembler(FromJsonHelper fromApiJsonHelper, CodeValueRepositoryWrapper codeValueRepository, + LoanCollateralManagementRepository loanCollateralRepository, + ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) { + return new LoanCollateralAssembler(fromApiJsonHelper, codeValueRepository, loanCollateralRepository, + clientCollateralManagementRepositoryWrapper); + } + + @Bean + @ConditionalOnMissingBean(LoanCollateralManagementReadPlatformService.class) + public LoanCollateralManagementReadPlatformService loanCollateralManagementReadPlatformService(PlatformSecurityContext context, + LoanCollateralManagementRepository loanCollateralManagementRepository, LoanRepository loanRepository) { + return new LoanCollateralManagementReadPlatformServiceImpl(context, loanCollateralManagementRepository, loanRepository); + } + + @Bean + @ConditionalOnMissingBean(LoanCollateralManagementWritePlatformService.class) + public LoanCollateralManagementWritePlatformService loanCollateralManagementWritePlatformService( + LoanCollateralManagementRepository loanCollateralManagementRepository, + ClientCollateralManagementRepositoryWrapper clientCollateralManagementRepositoryWrapper) { + return new LoanCollateralManagementWritePlatformServiceImpl(loanCollateralManagementRepository, + clientCollateralManagementRepositoryWrapper); + } +}