<?php
namespace App\Entity\Main;
use App\Repository\ForfaitRepository;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
/**
* @ORM\Entity(repositoryClass=ForfaitRepository::class)
*/
class Forfait
{
public const COLOR_DEFAULT = '#898887';
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $designation;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $information;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_pass_kids;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_pass_famille;
/**
* @ORM\Column(type="string", length=10, nullable=true)
*/
private $pass_color = self::COLOR_DEFAULT;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $nbre_activites;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $priority;
/**
* @ORM\Column(type="boolean")
*/
private $is_active;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private $urlForfait;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Main\Formule", inversedBy="forfaits")
*/
private $formule;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Main\Activity", cascade={"persist"})
* @ORM\JoinTable(name="forfaits_includedactivities")
*/
private $activities_included;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\Main\Activity", cascade={"persist"})
* @ORM\JoinTable(name="forfaits_choicedactivities")
*/
private $activities_choiced;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Main\Price", mappedBy="forfait", cascade={"persist", "remove"}, orphanRemoval=true)
*/
private $prices;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Main\ActivityOptions", mappedBy="forfait")
*/
private $activityOptions;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Main\Promos", mappedBy="forfait")
*/
private $promos;
/**
* @ORM\OneToMany(targetEntity="App\Entity\Main\PromosOptions", mappedBy="forfait")
*/
private $promosOptions;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $minParticipants;
/**
* @ORM\ManyToMany(targetEntity=CartoBon::class, mappedBy="forfait")
*/
private $cartoBons;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_new;
/**
* @ORM\Column(type="boolean", nullable=true)
*/
private $is_shortly;
public function __construct()
{
$this->activities_included = new ArrayCollection();
$this->activities_choiced = new ArrayCollection();
$this->options = new ArrayCollection();
$this->prices = new ArrayCollection();
$this->activityOptions = new ArrayCollection();
$this->promos = new ArrayCollection();
$this->promosOptions = new ArrayCollection();
$this->childrens = new ArrayCollection();
$this->cartoBons = new ArrayCollection();
}
public function __toString()
{
return (string) $this->designation . ' (' . $this->formule . ')';
}
public function getId(): ?int
{
return $this->id;
}
public function getDesignation(): ?string
{
return $this->designation;
}
public function setDesignation(?string $designation): self
{
$this->designation = $designation;
return $this;
}
public function getInformation(): ?string
{
return $this->information;
}
public function setInformation(?string $information): self
{
$this->information = $information;
return $this;
}
public function getIsPassKids(): ?bool
{
return $this->is_pass_kids;
}
public function setIsPassKids(?bool $is_pass_kids): self
{
$this->is_pass_kids = $is_pass_kids;
return $this;
}
public function getIsPassFamille(): ?bool
{
return $this->is_pass_famille;
}
public function setIsPassFamille(?bool $is_pass_famille): self
{
$this->is_pass_famille = $is_pass_famille;
return $this;
}
public function getPassColor(): ?string
{
return $this->pass_color ? $this->pass_color : self::COLOR_DEFAULT;
}
public function setPassColor(?string $pass_color): self
{
$this->pass_color = $pass_color;
return $this;
}
public function getNbreActivites(): ?int
{
return $this->nbre_activites;
}
public function setNbreActivites(?int $nbre_activites): self
{
$this->nbre_activites = $nbre_activites;
return $this;
}
public function getPriority(): ?int
{
return $this->priority;
}
public function setPriority(?int $priority): self
{
$this->priority = $priority;
return $this;
}
public function getIsActive(): ?bool
{
return $this->is_active;
}
public function setIsActive(bool $is_active): self
{
$this->is_active = $is_active;
return $this;
}
public function getUrlForfait(): ?string
{
return $this->urlForfait;
}
public function setUrlForfait(?string $urlForfait): self
{
$this->urlForfait = $urlForfait;
return $this;
}
/**
* @return Collection|Activity[]
*/
public function getActivitiesIncluded(): Collection
{
return $this->activities_included;
}
public function addActivitiesIncluded(Activity $activitiesIncluded): self
{
if (!$this->activities_included->contains($activitiesIncluded)) {
$this->activities_included[] = $activitiesIncluded;
}
return $this;
}
public function removeActivitiesIncluded(Activity $activitiesIncluded): self
{
if ($this->activities_included->contains($activitiesIncluded)) {
$this->activities_included->removeElement($activitiesIncluded);
}
return $this;
}
public function getFormule(): ?Formule
{
return $this->formule;
}
public function setFormule(?Formule $formule): self
{
$this->formule = $formule;
return $this;
}
/**
* @return Collection|Activity[]
*/
public function getActivitiesChoiced(): Collection
{
return $this->activities_choiced;
}
public function addActivitiesChoiced(Activity $activitiesChoiced): self
{
if (!$this->activities_choiced->contains($activitiesChoiced)) {
$this->activities_choiced[] = $activitiesChoiced;
}
return $this;
}
public function removeActivitiesChoiced(Activity $activitiesChoiced): self
{
if ($this->activities_choiced->contains($activitiesChoiced)) {
$this->activities_choiced->removeElement($activitiesChoiced);
}
return $this;
}
/**
* @return Collection|Price[]
*/
public function getPrices(): Collection
{
return $this->prices;
}
public function addPrice(Price $price): self
{
if (!$this->prices->contains($price)) {
$this->prices[] = $price;
$price->setForfait($this);
}
return $this;
}
public function removePrice(Price $price): self
{
if ($this->prices->contains($price)) {
$this->prices->removeElement($price);
// set the owning side to null (unless already changed)
if ($price->getForfait() === $this) {
$price->setForfait(null);
}
}
return $this;
}
/**
* @return Collection|ActivityOptions[]
*/
public function getActivityOptions(): Collection
{
return $this->activityOptions;
}
public function addActivityOption(ActivityOptions $activityOption): self
{
if (!$this->activityOptions->contains($activityOption)) {
$this->activityOptions[] = $activityOption;
$activityOption->setForfait($this);
}
return $this;
}
public function removeActivityOption(ActivityOptions $activityOption): self
{
if ($this->activityOptions->contains($activityOption)) {
$this->activityOptions->removeElement($activityOption);
// set the owning side to null (unless already changed)
if ($activityOption->getForfait() === $this) {
$activityOption->setForfait(null);
}
}
return $this;
}
/**
* @return Collection|Promos[]
*/
public function getPromos(): Collection
{
return $this->promos;
}
public function addPromo(Promos $promo): self
{
if (!$this->promos->contains($promo)) {
$this->promos[] = $promo;
$promo->setForfait($this);
}
return $this;
}
public function removePromo(Promos $promo): self
{
if ($this->promos->contains($promo)) {
$this->promos->removeElement($promo);
// set the owning side to null (unless already changed)
if ($promo->getForfait() === $this) {
$promo->setForfait(null);
}
}
return $this;
}
/**
* @return Collection|PromosOptions[]
*/
public function getPromosOptions(): Collection
{
return $this->promosOptions;
}
public function addPromosOption(PromosOptions $promosOption): self
{
if (!$this->promosOptions->contains($promosOption)) {
$this->promosOptions[] = $promosOption;
$promosOption->setForfait($this);
}
return $this;
}
public function removePromosOption(PromosOptions $promosOption): self
{
if ($this->promosOptions->contains($promosOption)) {
$this->promosOptions->removeElement($promosOption);
// set the owning side to null (unless already changed)
if ($promosOption->getForfait() === $this) {
$promosOption->setForfait(null);
}
}
return $this;
}
public function getMinParticipants(): ?int
{
return $this->minParticipants;
}
public function setMinParticipants(?int $minParticipants): self
{
$this->minParticipants = $minParticipants;
return $this;
}
/**
* @return Collection|CartoBon[]
*/
public function getCartoBons(): Collection
{
return $this->cartoBons;
}
public function addCartoBon(CartoBon $cartoBon): self
{
if (!$this->cartoBons->contains($cartoBon)) {
$this->cartoBons[] = $cartoBon;
$cartoBon->addForfait($this);
}
return $this;
}
public function removeCartoBon(CartoBon $cartoBon): self
{
if ($this->cartoBons->removeElement($cartoBon)) {
$cartoBon->removeForfait($this);
}
return $this;
}
public function getIsNew(): ?bool
{
return $this->is_new;
}
public function setIsNew(?bool $is_new): self
{
$this->is_new = $is_new;
return $this;
}
public function getIsShortly(): ?bool
{
return $this->is_shortly;
}
public function setIsShortly(?bool $is_shortly): self
{
$this->is_shortly = $is_shortly;
return $this;
}
}