README.md

multicurtest-private-operations-service

Test task for Divan.ru: Service of account private operations

Description

Service provide personal operations, that customer may act, end account effects if thats.

Records aggregation:

  • BankAccountRec
  • CurrencyOperationInAccountRequestRec
    • AmountInCurrencyVal
  • CurrencySummaryInAccountRec
    • AmountInCurrencyVal

Source structure

  • exceptions
    • NotEnouthMoneyException
  • managers
    • BankAccountManagerInterface
    • CurrencyManagerInterface
    • CurrencyOperationManagerInterface
    • CurrencySummaryManagerInterface
  • records
    • BankAccountRecInterface
    • CurrencyOperationInAccountRequestRecInterface
    • CurrencySummaryInAccountRecInterface
  • values
    • AmountInCurrencyValInterface
  • PrivateOperationsService

API

<?php
namespace Pantagruel74\MulticurtestPrivateOperationsService;

final class PrivateOperationsService
{
    /**
     * Request balance of CONFIRMED operations in requested
     * account in requested currency.
     * @param string $accountId
     * @param string $currency
     * @return AmountInCurrencyValInterface
     */
    public function getConfirmedBalanceInCurrencyAccount(
        string $accountId,
        string $currency
    ): AmountInCurrencyValInterface {...}

    /**
     * Request balance of account of switched-off currency.
     * @param string $accountId
     * @param string $currency
     * @return AmountInCurrencyValInterface
     */
    public function getFrozenBalanceInCurrencyAccount(
        string $accountId,
        string $currency
    ): AmountInCurrencyValInterface {...}

    /**
     * Request CONFIRMED total balance in account.
     * @param string $accountId
     * @return AmountInCurrencyValInterface
     */
    public function getConfirmedTotalBalanceInAccount(
        string $accountId
    ): AmountInCurrencyValInterface {...}

    /**
     * User replenishment some amount to account.
     * @param string $accountId
     * @param AmountInCurrencyValInterface $amount
     * @return void
     */
    public function replenishmentOfBalance(
        string $accountId,
        AmountInCurrencyValInterface $amount
    ): void {...}

    /**
     * User cash of some amount from account.
     * @param string $accountId
     * @param AmountInCurrencyValInterface $amount
     * @return void
     */
    public function cashAmount(
        string $accountId,
        AmountInCurrencyValInterface $amount
    ): void {...}

    /**
     * User converts some amount from account to other currency,
     * available on account too.
     * @param string $accountId
     * @param AmountInCurrencyValInterface $amount
     * @param string $targetCurrency
     * @return void
     */
    public function convertAmountToOtherCurrency(
        string $accountId,
        AmountInCurrencyValInterface $amount,
        string $targetCurrency
    ): void {...}
}
Описание

Test task for Divan.ru: Service of account private operations

Конвейеры
0 успешных
0 с ошибкой