inklabs/kommerce-core

View on GitHub
src/EntityDTO/Builder/CartPriceRuleProductItemDTOBuilder.php

Summary

Maintainability
A
45 mins
Test Coverage
<?php
namespace inklabs\kommerce\EntityDTO\Builder;

use inklabs\kommerce\Entity\CartPriceRuleProductItem;
use inklabs\kommerce\EntityDTO\CartPriceRuleProductItemDTO;

/**
 * @method CartPriceRuleProductItemDTO build()
 */
class CartPriceRuleProductItemDTOBuilder extends AbstractCartPriceRuleItemDTOBuilder
{
    /** @var CartPriceRuleProductItem */
    protected $entity;

    /** @var CartPriceRuleProductItemDTO */
    protected $entityDTO;

    /**
     * @return static
     */
    public function withProduct()
    {
        $product = $this->entity->getProduct();
        if ($product !== null) {
            $this->entityDTO->product = $this->dtoBuilderFactory
                ->getProductDTOBuilder($product)
                ->build();
        }
        return $this;
    }

    /**
     * @return static
     */
    public function withAllData()
    {
        return $this
            ->withProduct();
    }

    protected function getEntityDTO()
    {
        return new CartPriceRuleProductItemDTO;
    }
}