<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity (repositoryClass="App\Repository\WebFilterItemRepository")
*/
class WebFilterItem
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\WebFilter", inversedBy="items")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="filter_id", referencedColumnName="id", onDelete="CASCADE")
* })
*/
private $filter;
/**
* @ORM\Column(type="string", length=255, nullable=true, options={"comment":"Intitulé"})
*/
private $label;
/**
* @ORM\Column(type="json", nullable=true)
*/
private $labelTranslations;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\Media", inversedBy="filterItems")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="media_id", referencedColumnName="id")
* })
*/
private $image;
/**
*
* @deprecated on le garde pour des raisons de compatibilités et pour pas perdre de données, mais faut plus s'en servir
*
* @ORM\Column(type="json", nullable=true, options={"comment":"modalité(s)"})
*/
private $modality;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\DnsitModality", inversedBy="filterItems", cascade={"persist"})
*/
private $modalities;
/**
* @ORM\ManyToMany(targetEntity="App\Entity\DnsitCriterion", inversedBy="filterItems", cascade={"persist"})
*/
private $criterions;
/**
* @ORM\Column(type="string", length=255, nullable=true, options={"comment":"min"})
*/
private $min;
/**
* @ORM\Column(type="string", length=255, nullable=true, options={"comment":"max"})
*/
private $max;
/**
* @ORM\Column(type="string", length=255, nullable=true, options={"comment":"intervalle"})
*/
private $interval;
/**
* @ORM\Column(type="json", nullable=true, options={"comment":"options"})
*/
private $options;
/**
* @ORM\Column(type="json", nullable=true, options={"comment":"parametres"})
*/
private $params;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private $ordering;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\User", inversedBy="webFilterItems")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="owner_id", referencedColumnName="id")
* })
*/
private $owner;
/**
* @ORM\ManyToOne(targetEntity="App\Entity\DnsitEntity", inversedBy="webFilterItems")
* @ORM\JoinColumns({
* @ORM\JoinColumn(name="entity_id", referencedColumnName="id")
* })
*/
private $entity;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $createdAt;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $updatedAt;
/**
* @ORM\Column(type="integer", nullable=true, options={"default":0, "comment":"code de statut : 0=OK"})
*/
private $state;
/**
* @var \Doctrine\Common\Collections\Collection
* @ORM\OneToMany(targetEntity="App\Entity\WebFilterResult", mappedBy="filterItem")
*/
private $webFilterResults;
public function __construct() {
$this->modalities = new ArrayCollection();
$this->criterions = new ArrayCollection();
$this->webFilterResults = new ArrayCollection();
}
public function getId() : ?int
{
return $this->id;
}
public function getLabel() : ?string
{
return $this->label;
}
public function setLabel(?string $label) : self
{
$this->label = $label;
return $this;
}
public function getLabelTranslations() : ?array
{
return $this->labelTranslations;
}
public function setLabelTranslations(?array $labelTranslations) : self
{
$this->labelTranslations = $labelTranslations;
return $this;
}
public function getModality() : ?array
{
return $this->modality;
}
public function setModality(?array $modality) : self
{
$this->modality = $modality;
return $this;
}
public function getMin() : ?string
{
return $this->min;
}
public function setMin(?string $min) : self
{
$this->min = $min;
return $this;
}
public function getMax() : ?string
{
return $this->max;
}
public function setMax(?string $max) : self
{
$this->max = $max;
return $this;
}
public function getInterval() : ?string
{
return $this->interval;
}
public function setInterval(?string $interval) : self
{
$this->interval = $interval;
return $this;
}
public function getParams() : ?array
{
return $this->params;
}
public function setParams(?array $params) : self
{
$this->params = $params;
return $this;
}
public function getCreatedAt() : ?\DateTimeInterface
{
return $this->createdAt;
}
public function setCreatedAt(?\DateTimeInterface $createdAt) : self
{
$this->createdAt = $createdAt;
return $this;
}
public function getUpdatedAt() : ?\DateTimeInterface
{
return $this->updatedAt;
}
public function setUpdatedAt(?\DateTimeInterface $updatedAt) : self
{
$this->updatedAt = $updatedAt;
return $this;
}
public function getState() : ?int
{
return $this->state;
}
public function setState(?int $state) : self
{
$this->state = $state;
return $this;
}
public function getFilter() : ?WebFilter
{
return $this->filter;
}
public function setFilter(?WebFilter $filter) : self
{
$this->filter = $filter;
return $this;
}
public function getImage() : ?Media
{
return $this->image;
}
public function setImage(?Media $image) : self
{
$this->image = $image;
return $this;
}
public function getOwner() : ?User
{
return $this->owner;
}
public function setOwner(?User $owner) : self
{
$this->owner = $owner;
return $this;
}
public function getEntity() : ?DnsitEntity
{
return $this->entity;
}
public function setEntity(?DnsitEntity $entity) : self
{
$this->entity = $entity;
return $this;
}
public function getOrdering() : ?int
{
return $this->ordering;
}
public function setOrdering(?int $ordering) : self
{
$this->ordering = $ordering;
return $this;
}
public function getOptions() : ?array
{
return $this->options;
}
public function setOptions(?array $options) : self
{
$this->options = $options;
return $this;
}
/**
* @return Collection|DnsitModality[]
*/
public function getModalities() : Collection
{
return $this->modalities;
}
public function addModality(DnsitModality $modality) : self
{
if (!$this->modalities->contains($modality)) {
$this->modalities[] = $modality;
$modality->addFilterItem($this);
}
return $this;
}
public function removeModality(DnsitModality $modality) : self
{
if ($this->modalities->contains($modality)) {
$this->modalities->removeElement($modality);
$modality->removeFilterItem($this);
}
return $this;
}
/**
* @return Collection|DnsitCriterion[]
*/
public function getCriterions() : Collection
{
return $this->criterions;
}
public function addCriterion(DnsitCriterion $criterion) : self
{
if (!$this->criterions->contains($criterion)) {
$this->criterions[] = $criterion;
$criterion->addFilterItem($this);
}
return $this;
}
public function removeCriterion(DnsitCriterion $criterion) : self
{
if ($this->criterions->contains($criterion)) {
$this->criterions->removeElement($criterion);
$criterion->removeFilterItem($this);
}
return $this;
}
/**
* @return Collection|WebFilterResult[]
*/
public function getWebFilterResults() : Collection
{
return $this->webFilterResults;
}
public function addWebFilterResult(WebFilterResult $webFilterResult) : self
{
if (!$this->webFilterResults->contains($webFilterResult)) {
$this->webFilterResults[] = $webFilterResult;
$webFilterResult->setFilterItem($this);
}
return $this;
}
public function removeWebFilterResult(WebFilterResult $webFilterResult) : self
{
if ($this->webFilterResults->contains($webFilterResult)) {
$this->webFilterResults->removeElement($webFilterResult);
// set the owning side to null (unless already changed)
if ($webFilterResult->getFilterItem() === $this) {
$webFilterResult->setFilterItem(null);
}
}
return $this;
}
}