All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.adorsys.ledgers.deposit.api.service.DepositAccountService Maven / Gradle / Ivy

package de.adorsys.ledgers.deposit.api.service;

import de.adorsys.ledgers.deposit.api.domain.DepositAccountBO;
import de.adorsys.ledgers.deposit.api.domain.DepositAccountDetailsBO;
import de.adorsys.ledgers.deposit.api.domain.FundsConfirmationRequestBO;
import de.adorsys.ledgers.deposit.api.domain.TransactionDetailsBO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;

public interface DepositAccountService {

    /**
     * Retrieve accounts by IBAN and Currency(partial/empty)
     *
     * @param iban     mandatory IBAN
     * @param currency optional or partial Currency
     * @return List of accounts as if currency not specified can be many
     */
    List getAccountsByIbanAndParamCurrency(String iban, String currency);

    /**
     * Retrieve account by IBAN and Currency
     *
     * @param iban     IBAN
     * @param currency Currency
     * @return DepositAccount
     */
    DepositAccountBO getAccountByIbanAndCurrency(String iban, Currency currency);

    /**
     * Retrieve account by accountId
     *
     * @param accountId the account id
     * @return DepositAccount
     */
    DepositAccountBO getAccountById(String accountId);

    Optional getOptionalAccountByIbanAndCurrency(String iban, Currency currency);

    Optional getOptionalAccountById(String accountId);

    DepositAccountBO createNewAccount(DepositAccountBO depositAccountBO, String userName, String branch);

    DepositAccountDetailsBO getAccountDetailsByIbanAndCurrency(String iban, Currency currency, LocalDateTime refTime, boolean withBalances);

    DepositAccountDetailsBO getAccountDetailsById(String accountId, LocalDateTime refTime, boolean withBalances);

    TransactionDetailsBO getTransactionById(String accountId, String transactionId);

    List getTransactionsByDates(String accountId, LocalDateTime dateFrom, LocalDateTime dateTo);

    Page getTransactionsByDatesPaged(String accountId, LocalDateTime dateFrom, LocalDateTime dateTo, Pageable pageable);

    boolean confirmationOfFunds(FundsConfirmationRequestBO requestBO);

    String readIbanById(String id);

    List findDetailsByBranch(String branch);

    Page findDetailsByBranchPaged(String branch, String queryParam, Pageable pageable);

    void deleteTransactions(String accountId);

    void deleteBranch(String branchId);

    void deleteUser(String userId);

    void deleteAccount(String accountId);

    void rollBackBranch(String branch, LocalDateTime revertTimestamp);

    void changeAccountsBlockedStatus(String userId, boolean isSystemBlock, boolean lockStatusToSet);

    Page findByBranchIdsAndMultipleParams(Collection branchIds, String iban, Boolean blocked, Pageable pageable);

    void changeAccountsBlockedStatus(Set accountIds, boolean systemBlock, boolean lockStatusToSet);

    void changeCreditLimit(String accountId, BigDecimal creditLimit);
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy