<?php

namespace Lc\ShopBundle\Model;

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

/**
 * @ORM\MappedSuperclass()
 */
abstract class OrderReductionCredit implements ReductionInterface
{
        use ReductionTrait ;

        /**
         * @ORM\Column(type="string", length=255)
         */
        protected $title;


        /**
         * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\OrderShopInterface", inversedBy="orderReductionCredits")
         * @ORM\JoinColumn(nullable=false)
         */
        protected $orderShop;

        /**
         * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\ReductionCreditInterface")
         * @ORM\JoinColumn(nullable=false)
         */
        protected $reductionCredit;

        public function __toString()
        {
                return $this->title;
        }

        public function getTitle(): ?string
        {
                return $this->title;
        }

        public function setTitle(string $title): self
        {
                $this->title = $title;

                return $this;
        }

        public function getOrderShop(): ?OrderShop
        {
                return $this->orderShop;
        }

        public function setOrderShop(?OrderShop $orderShop): self
        {
                $this->orderShop = $orderShop;

                return $this;
        }

        public function getReductionCredit(): ?ReductionCredit
        {
                return $this->reductionCredit;
        }

        public function setReductionCredit(?ReductionCredit $reductionCredit): self
        {
                $this->reductionCredit = $reductionCredit;

                return $this;
        }
}