src/Internal/Assembler/TransferLazyDtoAssemblerInterface.php
<?php
declare(strict_types=1);
namespace Bavix\Wallet\Internal\Assembler;
use Bavix\Wallet\Interfaces\Wallet;
use Bavix\Wallet\Internal\Dto\TransactionDtoInterface;
use Bavix\Wallet\Internal\Dto\TransferLazyDtoInterface;
interface TransferLazyDtoAssemblerInterface
{
/**
* @param array<mixed>|null $extra
*/
public function create(
Wallet $fromWallet,
Wallet $toWallet,
int $discount,
string $fee,
TransactionDtoInterface $withdrawDto,
TransactionDtoInterface $depositDto,
string $status,
?string $uuid,
?array $extra,
): TransferLazyDtoInterface;
}