<?php

namespace Lc\ShopBundle\Model;

use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;


/**
 * @ORM\MappedSuperclass()
 */
abstract class OrderStatusHistory extends AbstractEntity
{
        /**
         * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\OrderShopInterface", inversedBy="orderStatusHistories")
         * @ORM\JoinColumn(nullable=false)
         */
        protected $orderShop;

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

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

        /**
         * @Gedmo\Blameable(on="create")
         * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\UserInterface")
         * @ORM\JoinColumn(nullable=true)
         */
        protected $createdBy;

        /**
         * @Gedmo\Blameable(on="update")
         * @ORM\ManyToOne(targetEntity="Lc\ShopBundle\Context\UserInterface")
         * @ORM\JoinColumn(nullable=true)
         */
        protected $updatedBy;
        public function __toString()
        {
                return $this->getOrderStatus()->getAlias(). ' le : '.$this->getCreatedAt()->format('d-m-Y H:i').'('.$this->getOrigin().')';
        }

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

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

                return $this;
        }

        public function getOrderStatus(): ?OrderStatus
        {
                return $this->orderStatus;
        }

        public function setOrderStatus(?OrderStatus $orderStatus): self
        {
                $this->orderStatus = $orderStatus;

                return $this;
        }

        public function getOrigin(): ?string
        {
                return $this->origin;
        }

        public function setOrigin(string $origin): self
        {
                $this->origin = $origin;

                return $this;
        }
}
