<?php
namespace App\Entity\System;
use Doctrine\ORM\Mapping as ORM;
/**
* Cart
*
* @ORM\Table(name="ps_cart_product")
*
* @ORM\Entity(repositoryClass="App\Repository\System\CartProductRepository")
*/
class CartProduct
{
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer", name="id_cart_product")
*/
private $id;
/**
* @var Cart
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Cart", inversedBy="cartProducts")
*
* @ORM\JoinColumn(name="id_cart", referencedColumnName="id_cart")
*/
private $cart;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\System\Order")
*
* @ORM\JoinColumn(name="order_id", referencedColumnName="id_order", nullable=true)
*/
private ?Order $order = null;
/**
* @var int
*
* @ORM\Column(type="integer", name="id_product")
*/
private $productId;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\System\Address")
*
* @ORM\JoinColumn(referencedColumnName="id_address", name="id_address_delivery", nullable=true)
*/
private ?Address $addressDelivery;
/**
* @var int|null
*
* @ORM\Column(type="integer", length=10, nullable=true, name="id_product_attribute")
*/
private $productAttributeId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, options={"default" : 0})
*/
private $quantity;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime")
*/
private $dateAdd;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime")
*/
private $dateUpd;
/**
* @var int|null
*
* @ORM\Column(type="integer", length=10, nullable=true, options={"default" : 0})
*/
private $locks;
/**
* @var bool
*
* @ORM\Column(type="boolean", nullable=true, columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $futureStock;
/**
* @var bool
*
* @ORM\Column(type="boolean", nullable=true, columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $externStock;
/**
* @var string|null
*
* @ORM\Column(type="string", nullable=true, length=50, options={"default" : "0"})
*/
private $purchaseOrder;
/**
* @var int|null
*
* @ORM\Column(name="id_purchase_line", type="integer", length=11, nullable=true, options={"default" : 0})
*/
private $purchaseLineId;
/**
* @var int|null
*
* @ORM\Column(name="envio_excluido", type="boolean", nullable=true, columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $shippingExcluded;
/**
* @var string|null
*
* @ORM\Column(type="string", nullable=true, length=150,)
*/
private $internalReference;
/**
* @var bool
*
* @ORM\Column(name="extern_stock_3_5", type="boolean", nullable=true, columnDefinition="tinyint(1)", options={"default" : 0})
*/
private $externStock3To5;
/**
* @ORM\Column(name="shop_360_topic", type="integer", length=2, nullable=true)
*/
private ?int $shop360Topic = null;
public function __construct()
{
$this->futureStock = false;
$this->externStock = false;
$this->externStock3To5 = false;
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int|null $id
*
* @return CartProduct
*/
public function setId(?int $id): CartProduct
{
$this->id = $id;
return $this;
}
/**
* @return Cart
*/
public function getCart(): Cart
{
return $this->cart;
}
/**
* @param Cart $cart
*
* @return CartProduct
*/
public function setCart(Cart $cart): CartProduct
{
$this->cart = $cart;
return $this;
}
public function getOrder(): ?Order
{
return $this->order;
}
public function setOrder(?Order $order): CartProduct
{
$this->order = $order;
return $this;
}
/**
* @return int
*/
public function getProductId(): int
{
return $this->productId;
}
/**
* @param int $productId
*
* @return CartProduct
*/
public function setProductId(int $productId): CartProduct
{
$this->productId = $productId;
return $this;
}
public function getAddressDelivery(): ?Address
{
return $this->addressDelivery;
}
public function setAddressDelivery(?Address $addressDelivery): CartProduct
{
$this->addressDelivery = $addressDelivery;
return $this;
}
/**
* @return int|null
*/
public function getProductAttributeId(): ?int
{
return $this->productAttributeId;
}
/**
* @param int|null $productAttributeId
*
* @return CartProduct
*/
public function setProductAttributeId(?int $productAttributeId): CartProduct
{
$this->productAttributeId = $productAttributeId;
return $this;
}
/**
* @return int|null
*/
public function getQuantity(): ?int
{
return $this->quantity;
}
/**
* @param int $quantity
*
* @return CartProduct
*/
public function setQuantity(int $quantity): CartProduct
{
$this->quantity = $quantity;
return $this;
}
/**
* @return \DateTime|null
*/
public function getDateAdd(): ?\DateTime
{
return $this->dateAdd;
}
/**
* @param \DateTime $dateAdd
*
* @return CartProduct
*/
public function setDateAdd(\DateTime $dateAdd): CartProduct
{
$this->dateAdd = $dateAdd;
return $this;
}
/**
* @return \DateTime
*/
public function getDateUpd(): \DateTime
{
return $this->dateUpd;
}
/**
* @param \DateTime $dateUpd
*
* @return CartProduct
*/
public function setDateUpd(\DateTime $dateUpd): CartProduct
{
$this->dateUpd = $dateUpd;
return $this;
}
/**
* @return int|null
*/
public function getLocks(): ?int
{
return $this->locks;
}
/**
* @param int|null $locks
*
* @return CartProduct
*/
public function setLocks(?int $locks): CartProduct
{
$this->locks = $locks;
return $this;
}
public function getFutureStock(): bool
{
return $this->futureStock;
}
public function setFutureStock(bool $futureStock): CartProduct
{
$this->futureStock = $futureStock;
return $this;
}
public function getExternStock(): ?bool
{
return $this->externStock;
}
public function setExternStock(bool $externStock): CartProduct
{
$this->externStock = $externStock;
return $this;
}
/**
* @return string|null
*/
public function getPurchaseOrder(): ?string
{
return $this->purchaseOrder;
}
/**
* @param string|null $purchaseOrder
*
* @return CartProduct
*/
public function setPurchaseOrder(?string $purchaseOrder): CartProduct
{
$this->purchaseOrder = $purchaseOrder;
return $this;
}
/**
* @return int|null
*/
public function getPurchaseLineId(): ?int
{
return $this->purchaseLineId;
}
/**
* @param int|null $purchaseLineId
*
* @return CartProduct
*/
public function setPurchaseLineId(?int $purchaseLineId): CartProduct
{
$this->purchaseLineId = $purchaseLineId;
return $this;
}
/**
* @return int|null
*/
public function getShippingExcluded(): ?int
{
return $this->shippingExcluded;
}
/**
* @param int|null $shippingExcluded
*
* @return CartProduct
*/
public function setShippingExcluded(?int $shippingExcluded): CartProduct
{
$this->shippingExcluded = $shippingExcluded;
return $this;
}
/**
* @return string|null
*/
public function getInternalReference(): ?string
{
return $this->internalReference;
}
/**
* @param string|null $internalReference
*
* @return CartProduct
*/
public function setInternalReference(?string $internalReference): CartProduct
{
$this->internalReference = $internalReference;
return $this;
}
public function isExternStock3To5(): bool
{
return $this->externStock3To5;
}
public function setExternStock3To5(bool $externStock3To5): CartProduct
{
$this->externStock3To5 = $externStock3To5;
return $this;
}
/**
* @return int|null
*/
public function getShop360Topic(): ?int
{
return $this->shop360Topic;
}
/**
* @param int|null $shop360Topic
*
* @return CartProduct
*/
public function setShop360Topic(?int $shop360Topic): CartProduct
{
$this->shop360Topic = $shop360Topic;
return $this;
}
}