<?php
namespace App\Entity;
use App\Repository\PackageCompagnyRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Serializer\Annotation\Groups;
/**
* @ORM\Entity(repositoryClass=PackageCompagnyRepository::class)
*/
class PackageCompagny
{
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
* @Groups("main")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @Groups("main")
*/
private $name;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
* @Groups("main")
*/
private $priceHT;
/**
* @ORM\ManyToOne(targetEntity=Tax::class, inversedBy="packageCompagnies")
* @Groups("main")
*/
private $tax;
/**
* @ORM\Column(type="decimal", precision=10, scale=2)
* @Groups("main")
*/
private $priceTTC;
/**
* @ORM\ManyToMany(targetEntity=CompagnyInfo::class, inversedBy="packageCompagnies")
*/
private $compagny;
/**
* @ORM\Column(type="text")
* @Groups("main")
*/
private $description;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $minPers;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $maxPers;
/**
* @ORM\Column(type="integer")
*/
private $optionPrintIntervalPerson;
/**
* @ORM\ManyToMany(targetEntity=ShoppingCart::class, mappedBy="collectionPackages")
*/
private $shoppingCarts;
/**
* @ORM\Column(type="json", nullable=true)
*/
private $askDeposit=[];
public function __construct()
{
$this->compagny = new ArrayCollection();
$this->shoppingCarts = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getName(): ?string
{
return $this->name;
}
public function setName(string $name): self
{
$this->name = $name;
return $this;
}
public function getPriceHT(): ?string
{
return $this->priceHT;
}
public function setPriceHT(string $priceHT): self
{
$this->priceHT = $priceHT;
return $this;
}
public function getTax(): ?Tax
{
return $this->tax;
}
public function setTax(?Tax $tax): self
{
$this->tax = $tax;
return $this;
}
public function getPriceTTC(): ?string
{
return $this->priceTTC;
}
public function setPriceTTC(string $priceTTC): self
{
$this->priceTTC = $priceTTC;
return $this;
}
/**
* @return Collection|CompagnyInfo[]
*/
public function getCompagny(): Collection
{
return $this->compagny;
}
public function addCompagny(CompagnyInfo $compagny): self
{
if (!$this->compagny->contains($compagny)) {
$this->compagny[] = $compagny;
}
return $this;
}
public function removeCompagny(CompagnyInfo $compagny): self
{
if ($this->compagny->contains($compagny)) {
$this->compagny->removeElement($compagny);
}
return $this;
}
public function getDescription(): ?string
{
return $this->description;
}
public function setDescription(string $description): self
{
$this->description = $description;
return $this;
}
public function getMinPers(): ?int
{
return $this->minPers;
}
public function setMinPers(?int $minPers): self
{
$this->minPers = $minPers;
return $this;
}
public function getMaxPers(): ?int
{
return $this->maxPers;
}
public function setMaxPers(?int $maxPers): self
{
$this->maxPers = $maxPers;
return $this;
}
public function getOptionPrintIntervalPerson(): ?int
{
return $this->optionPrintIntervalPerson;
}
public function setOptionPrintIntervalPerson(int $optionPrintIntervalPerson): self
{
$this->optionPrintIntervalPerson = $optionPrintIntervalPerson;
return $this;
}
/**
* @return Collection|ShoppingCart[]
*/
public function getShoppingCarts(): Collection
{
return $this->shoppingCarts;
}
public function addShoppingCart(ShoppingCart $shoppingCart): self
{
if (!$this->shoppingCarts->contains($shoppingCart)) {
$this->shoppingCarts[] = $shoppingCart;
$shoppingCart->addCollectionPackage($this);
}
return $this;
}
public function removeShoppingCart(ShoppingCart $shoppingCart): self
{
if ($this->shoppingCarts->removeElement($shoppingCart)) {
$shoppingCart->removeCollectionPackage($this);
}
return $this;
}
public function getAskDeposit(): ?array
{
return $this->askDeposit;
}
public function setAskDeposit(?array $askDeposit): self
{
$this->askDeposit = $askDeposit;
return $this;
}
}