<?php
namespace App\Entity\System;
use Doctrine\ORM\Mapping as ORM;
/**
* Cart
*
* @ORM\Table(name="ps_cart_product", indexes={
*
* @ORM\Index(name="id_product_attribute", columns={"id_product_attribute"}),
* @ORM\Index(name="cart_product_index", columns={"id_cart", "id_product"}),
* @ORM\Index(name="locks", columns={"locks"})
* })
*
* @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", nullable=false)
*/
private $cart;
/**
* @var Product
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\Product", inversedBy="cartProducts")
*
* @ORM\JoinColumn(name="id_product", referencedColumnName="id_product", nullable=false)
*/
private $product;
/**
* @var ProductAttribute|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\System\ProductAttribute", inversedBy="cartProducts")
*
* @ORM\JoinColumn(name="id_product_attribute", referencedColumnName="id_product_attribute", nullable=true)
*/
private $productAttribute;
/**
* @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;
/**
* @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
*/
private bool $futureStock;
/**
* @ORM\Column(type="boolean", nullable=false, options={"default" : 0})
*/
private bool $externStock;
/**
* @var int|null
*
* @ORM\Column(name="id_purchase_line", type="integer", nullable=true)
*/
private $purchaseOrderReference;
/**
* @var string|null
*
* @ORM\Column(type="string", nullable=true, length=100)
*/
private $internalReference;
/**
* @ORM\Column(name="extern_stock_3_5", type="boolean", nullable=false, options={"default" : 0})
*/
private bool $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 getProduct(): Product
{
return $this->product;
}
public function setProduct(Product $product): CartProduct
{
$this->product = $product;
return $this;
}
public function getProductAttribute(): ?ProductAttribute
{
return $this->productAttribute;
}
public function setProductAttribute(?ProductAttribute $productAttribute): CartProduct
{
$this->productAttribute = $productAttribute;
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 int|null
*/
public function getPurchaseOrderReference(): ?int
{
return $this->purchaseOrderReference;
}
/**
* @param int|null $purchaseOrderReference
*
* @return CartProduct
*/
public function setPurchaseOrderReference(?int $purchaseOrderReference): CartProduct
{
$this->purchaseOrderReference = $purchaseOrderReference;
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;
}
}