Builders
AssetToCalculationBuilder
Fluent builder for constructing AssetToCalculation baskets for basic offer calculations.
Namespace and purpose
Imoli\EflLeasingSdk\Builder\AssetToCalculationBuilder is a fluent helper for building AssetToCalculation instances.
It is typically used before calling EflClient::calculateBasicOffer() or the low‑level CalculationApiClient::calculateBasicOffer().
Class definition
- Namespace:
Imoli\EflLeasingSdk\Builder - Class: final
AssetToCalculationBuilder - Builds:
Imoli\EflLeasingSdk\Model\Calculation\AssetToCalculation
namespace Imoli\EflLeasingSdk\Builder;
use Imoli\EflLeasingSdk\Model\Calculation\AssetToCalculation;
use Imoli\EflLeasingSdk\Model\Calculation\OfferItem;
final class AssetToCalculationBuilder
{
public function withTransactionId(string $transactionId): self;
/** @return $this */
public function addOfferItem(OfferItem $item): self;
/**
* @param OfferItem[] $items
* @return $this
*/
public function withOfferItems(array $items): self;
public function withReturnToBasketUrl(?string $returnToBasketUrl): self;
public function withBasketCalculation(?bool $basketCalculation): self;
public function build(): AssetToCalculation;
public static function create(string $transactionId): self;
}
Fluent API
- withTransactionId(string $transactionId): self
Sets the transaction identifier for the calculation request. - addOfferItem(OfferItem $item): self
Appends a singleOfferItemto the basket. - withOfferItems(OfferItem $items): self
Replaces the current list of offer items with the provided array. - withReturnToBasketUrl(?string $returnToBasketUrl): self
Optionally sets thereturnToBasketUrlused to redirect the user back to the basket. - withBasketCalculation(?bool $basketCalculation): self
Controls whether the calculation is performed for the entire basket. - build(): AssetToCalculation
- Validates that
transactionIdis set and at least oneOfferItemis present. - Throws
\LogicExceptionif required data is missing. - Returns a fully‑initialised
AssetToCalculationinstance.
- Validates that
- static create(string $transactionId): self
Convenience factory that returns a new builder withtransactionIdalready set.
Usage examples
Basic basket for calculation
use Imoli\EflLeasingSdk\Builder\AssetToCalculationBuilder;
use Imoli\EflLeasingSdk\Builder\OfferItemBuilder;
use Imoli\EflLeasingSdk\Builder\ItemDetailBuilder;
$itemDetail = ItemDetailBuilder::create('asset-code', 'Laptop X')
->build();
$offerItem = OfferItemBuilder::create(1, 'asset-guid-1', 23.0, [$itemDetail])
->build();
$basket = AssetToCalculationBuilder::create('tx-1')
->addOfferItem($offerItem)
->withReturnToBasketUrl('https://shop.example.com/basket')
->withBasketCalculation(true)
->build();
Using with EflClient
use Imoli\EflLeasingSdk\EflClient;
// $eflClient is an instance of EflClient configured for sandbox or production
$result = $eflClient->calculateBasicOffer($basket, $bearerToken);