<?php
namespace App\Entity\System;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\ORM\Mapping\JoinColumn;
use Doctrine\ORM\Mapping\OneToOne;
/**
* Cart
*
* @ORM\Table(name="ps_cart")
*
* @ORM\Entity(repositoryClass="App\Repository\System\CartRepository")
*/
class Cart
{
public const DEFAULT_CURRENCY_EUR = 1;
/**
* @var int
*
* @ORM\Id
*
* @ORM\GeneratedValue(strategy="AUTO")
*
* @ORM\Column(type="integer", name="id_cart")
*/
private $id;
/**
* One Cart has One Order.
*
* @var Order|null
*
* @OneToOne(targetEntity="App\Entity\System\Order", inversedBy="cart")
*
* @JoinColumn(name="id_order", referencedColumnName="id_order", nullable=true)
*/
private $order;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_carrier")
*/
private $carrierId;
/**
* @var string
*
* @ORM\Column(type="string", length=1000)
*/
private $deliveryOption;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_lang")
*/
private $LanguageId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_address_delivery")
*/
private $addressDeliveryId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_address_invoice")
*/
private $addressInvoiceId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_currency")
*/
private $currencyId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_customer")
*/
private $customerId;
/**
* @var int
*
* @ORM\Column(type="integer", length=10, name="id_guest")
*/
private $guestId;
/**
* @var string|null
*
* @ORM\Column(type="string", length=32, nullable=true, options={"default" : "-1"})
*/
private $secureKey;
/**
* @var int
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 1})
*/
private $recyclable;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime")
*/
private $dateUpd;
/**
* @var \DateTime
*
* @ORM\Column(type="datetime")
*/
private $dateAdd;
/**
* @var int
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0}, name="is_virtual")
*/
private $virtual;
/**
* @var bool
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(4)", options={"default" : 0}, name="is_sync")
*/
private bool $sync;
/**
* @var int
*
* @ORM\Column(type="integer", length=11, options={"default" : 0}, name="id_sincronate_shop_configuration")
*/
private $sincronateShopConfigurationId;
/**
* @var int|null
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0}, name="is_mobile", nullable=true)
*/
private $mobile;
/**
* @var int|null
*
* @ORM\Column(type="boolean", columnDefinition="tinyint(1)", options={"default" : 0}, nullable=true)
*/
private $dropshipping;
/**
* @var string|null
*
* @ORM\Column(type="string", nullable=true)
*/
private $payment;
/**
* @var float|null
*
* @ORM\Column(type="float", columnDefinition="decimal(17,2)", options={"default" : 0.00}, nullable=true)
*/
private $totalProducts;
/**
* @var float|null
*
* @ORM\Column(type="float", columnDefinition="decimal(17,2)", options={"default" : 0.00}, nullable=true, name="total_envio")
*/
private $totalShipping;
/**
* @ORM\Column(type="float", nullable=true, name="logistic_weight")
*/
private ?float $logisticWeight;
/**
* @var CartProduct[]|ArrayCollection
*
* @ORM\OneToMany(targetEntity="CartProduct", mappedBy="cart", cascade={"persist"})
*/
private $cartProducts;
public function __construct()
{
$this->addressDeliveryId = 0;
$this->addressInvoiceId = 0;
$this->carrierId = 0;
$this->currencyId = 0;
$this->guestId = 0;
$this->recyclable = false;
$this->sync = false;
$this->sincronateShopConfigurationId = 0;
$this->cartProducts = new ArrayCollection();
}
/**
* @return int
*/
public function getId(): int
{
return $this->id;
}
/**
* @param int $id
*
* @return Cart
*/
public function setIdCart(int $id): self
{
$this->id = $id;
return $this;
}
/**
* @return Order|null
*/
public function getOrder(): ?Order
{
return $this->order;
}
/**
* @param Order|null $order
*
* @return Cart
*/
public function setOrder(?Order $order): self
{
$this->order = $order;
return $this;
}
/**
* @return int
*/
public function getCarrierId(): int
{
return $this->carrierId;
}
/**
* @param int $carrierId
*
* @return Cart
*/
public function setCarrierId(int $carrierId): self
{
$this->carrierId = $carrierId;
return $this;
}
/**
* @return string
*/
public function getDeliveryOption(): string
{
return $this->deliveryOption;
}
/**
* @param string $deliveryOption
*
* @return Cart
*/
public function setDeliveryOption(string $deliveryOption): self
{
$this->deliveryOption = $deliveryOption;
return $this;
}
/**
* @return int
*/
public function getLanguageId(): int
{
return $this->LanguageId;
}
/**
* @param int $LanguageId
*
* @return Cart
*/
public function setLanguageId(int $LanguageId): self
{
$this->LanguageId = $LanguageId;
return $this;
}
/**
* @return int|null
*/
public function getAddressDeliveryId(): ?int
{
return $this->addressDeliveryId;
}
/**
* @param int $addressDeliveryId
*
* @return Cart
*/
public function setAddressDeliveryId(int $addressDeliveryId): self
{
$this->addressDeliveryId = $addressDeliveryId;
return $this;
}
/**
* @return int|null
*/
public function getAddressInvoiceId(): ?int
{
return $this->addressInvoiceId;
}
/**
* @param int $addressInvoiceId
*
* @return Cart
*/
public function setAddressInvoiceId(int $addressInvoiceId): self
{
$this->addressInvoiceId = $addressInvoiceId;
return $this;
}
/**
* @return int
*/
public function getCurrencyId(): int
{
return $this->currencyId;
}
/**
* @param int $currencyId
*
* @return Cart
*/
public function setCurrencyId(int $currencyId): self
{
$this->currencyId = $currencyId;
return $this;
}
/**
* @return int
*/
public function getCustomerId(): int
{
return $this->customerId;
}
/**
* @param int $customerId
*
* @return Cart
*/
public function setCustomerId(int $customerId): self
{
$this->customerId = $customerId;
return $this;
}
/**
* @return int
*/
public function getGuestId(): int
{
return $this->guestId;
}
/**
* @param int $guestId
*
* @return Cart
*/
public function setGuestId(int $guestId): self
{
$this->guestId = $guestId;
return $this;
}
/**
* @return string|null
*/
public function getSecureKey(): ?string
{
return $this->secureKey;
}
/**
* @param string|null $secureKey
*
* @return Cart
*/
public function setSecureKey(?string $secureKey): self
{
$this->secureKey = $secureKey;
return $this;
}
/**
* @return int
*/
public function getRecyclable(): int
{
return $this->recyclable;
}
/**
* @param int $recyclable
*
* @return Cart
*/
public function setRecyclable(int $recyclable): self
{
$this->recyclable = $recyclable;
return $this;
}
/**
* @return \DateTime
*/
public function getDateUpd(): \DateTime
{
return $this->dateUpd;
}
/**
* @param \DateTime $dateUpd
*
* @return Cart
*/
public function setDateUpd(\DateTime $dateUpd): self
{
$this->dateUpd = $dateUpd;
return $this;
}
/**
* @return \DateTime
*/
public function getDateAdd(): \DateTime
{
return $this->dateAdd;
}
/**
* @param \DateTime $dateAdd
*
* @return Cart
*/
public function setDateAdd(\DateTime $dateAdd): self
{
$this->dateAdd = $dateAdd;
return $this;
}
/**
* @return int
*/
public function getVirtual(): int
{
return $this->virtual;
}
/**
* @param int $virtual
*
* @return Cart
*/
public function setVirtual(int $virtual): self
{
$this->virtual = $virtual;
return $this;
}
/**
* @return bool
*/
public function getSync(): bool
{
return $this->sync;
}
/**
* @param bool $sync
*
* @return Cart
*/
public function setSync(bool $sync): self
{
$this->sync = $sync;
return $this;
}
/**
* @return int
*/
public function getSincronateShopConfigurationId(): int
{
return $this->sincronateShopConfigurationId;
}
/**
* @param int $sincronateShopConfigurationId
*
* @return Cart
*/
public function setSincronateShopConfigurationId(int $sincronateShopConfigurationId): self
{
$this->sincronateShopConfigurationId = $sincronateShopConfigurationId;
return $this;
}
/**
* @return int|null
*/
public function getMobile(): ?int
{
return $this->mobile;
}
/**
* @param int|null $mobile
*
* @return Cart
*/
public function setMobile(?int $mobile): self
{
$this->mobile = $mobile;
return $this;
}
/**
* @return int|null
*/
public function getDropshipping(): ?int
{
return $this->dropshipping;
}
/**
* @param int|null $dropshipping
*
* @return Cart
*/
public function setDropshipping(?int $dropshipping): self
{
$this->dropshipping = $dropshipping;
return $this;
}
/**
* @return string|null
*/
public function getPayment(): ?string
{
return $this->payment;
}
/**
* @param string|null $payment
*
* @return Cart
*/
public function setPayment(?string $payment): self
{
$this->payment = $payment;
return $this;
}
/**
* @return float|null
*/
public function getTotalProducts(): ?float
{
return $this->totalProducts;
}
/**
* @param float|null $totalProducts
*
* @return Cart
*/
public function setTotalProducts(?float $totalProducts): self
{
$this->totalProducts = $totalProducts;
return $this;
}
/**
* @return float|null
*/
public function getTotalShipping(): ?float
{
return $this->totalShipping;
}
/**
* @param float|null $totalShipping
*
* @return Cart
*/
public function setTotalShipping(?float $totalShipping): self
{
$this->totalShipping = $totalShipping;
return $this;
}
/**
* @param CartProduct[] $cartProducts
*/
public function addCartProducts(array $cartProducts): void
{
foreach ($cartProducts as $cartProduct) {
$this->cartProducts->add($cartProduct);
}
}
/**
* @return CartProduct[]|ArrayCollection
*/
public function getCartProducts()
{
return $this->cartProducts;
}
public function getLogisticWeight(): ?float
{
return $this->logisticWeight;
}
public function setLogisticWeight(?float $logisticWeight): void
{
$this->logisticWeight = $logisticWeight;
}
}