<?php

namespace Lc\ShopBundle\Model;

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

/**
 * @ORM\MappedSuperclass()
 */
abstract class OrderReductionCart implements ReductionInterface, ReductionCartPropertyInterface
{
        use ReductionTrait;
        use ReductionCartPropertyTrait;

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

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


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

        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 getReductionCart(): ?ReductionCart
        {
                return $this->reductionCart;
        }

        public function setReductionCart(?ReductionCart $reductionCart): self
        {
                $this->reductionCart = $reductionCart;

                return $this;
        }


}