<?php

namespace Lc\ShopBundle\Model;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Lc\ShopBundle\Services\Price;

trait ProductPropertyTrait
{
        use PriceTrait ;

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

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

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

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

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


        public function getBuyingPrice(): ?float
        {
                return $this->buyingPrice;
        }

        public function setBuyingPrice(?float $buyingPrice): self
        {
                $this->buyingPrice = $buyingPrice;

                return $this;
        }

        public function getQuantity(): ?float
        {
                return $this->quantity;
        }

        public function setQuantity(?float $quantity): self
        {
                $this->quantity = $quantity;

                return $this;
        }

        public function getQuantityInherited(): ?float
        {
                return $this->getQuantity() ;
        }

        public function getAvailableQuantity(): ?float
        {
                return $this->availableQuantity;
        }

        public function setAvailableQuantity(?float $availableQuantity): self
        {
                $this->availableQuantity = $availableQuantity;

                return $this;
        }

        public function getAvailableQuantityDefault(): ?float
        {
                return $this->availableQuantityDefault;
        }

        public function setAvailableQuantityDefault(?float $availableQuantityDefault): self
        {
                $this->availableQuantityDefault = $availableQuantityDefault;

                return $this;
        }

        public function getPropertyExpirationDate(): ?\DateTimeInterface
        {
                return $this->propertyExpirationDate;
        }

        public function setPropertyExpirationDate(?\DateTimeInterface $propertyExpirationDate): self
        {
                $this->propertyExpirationDate = $propertyExpirationDate;

                return $this;
        }

}