<?php

namespace Lc\ShopBundle\Model;

use Doctrine\ORM\Mapping as ORM;
use Lc\ShopBundle\Context\OrderPaymentInterface;
use Lc\ShopBundle\Context\OrderPayoffInterface;
use Lc\ShopBundle\Context\ReductionInterface;

/**
 * @ORM\MappedSuperclass()
 */
abstract class OrderRefund extends AbstractEntity implements OrderPayoffInterface
{
        use OrderPayoffTrait;

        /**
         * @ORM\Column(type="float", nullable=true)
         */
        protected $deliveryRefundAmount;

        /**
         * @ORM\OneToOne(targetEntity="Lc\ShopBundle\Context\DocumentInterface", inversedBy="orderRefund", cascade={"persist", "remove"})
         * @ORM\JoinColumn(nullable=false)
         */
        protected $document;

        public function getDeliveryRefundAmount(): ?float
        {
                return $this->deliveryRefundAmount;
        }

        public function setDeliveryRefundAmount(?float $deliveryRefundAmount): self
        {
                $this->deliveryRefundAmount = $deliveryRefundAmount;

                return $this;
        }

        public function getDocument(): ?Document
        {
                return $this->document;
        }

        public function setDocument(Document $document): self
        {
                $this->document = $document;

                return $this;
        }
}