<?php
namespace App\Entity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity
* @ORM\Table(name="mmpp_form_field_choice_value")
*/
class FormulaireFieldChoiceValue
{
/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\Column(type="integer", nullable=true)
* @var int
*/
protected $position;
/**
* @ORM\Column(type="boolean", name="is_default")
* @var boolean
*/
protected $isDefault;
/**
* @ORM\Column(type="string", length=255)
*/
protected $value;
/**
* @Gedmo\Slug(fields={"value"}, updatable=false, separator="-", unique=false)
* @ORM\Column(type="string", length=255, unique=false)
* @var String
*/
protected $slug;
/**
* @ORM\ManyToOne(targetEntity="FormulaireField", inversedBy="choiceValues")
* @ORM\JoinColumn(name="field_id", referencedColumnName="id")
*/
protected ?FormulaireField $field;
/**
* @ORM\OneToMany(targetEntity="FormulaireField", mappedBy="dependsOn" )
* @var FormulaireField[]
*/
protected $dependentFields;
public function __construct()
{
$this->dependentFields = new ArrayCollection();
}
/**
* toString for dependsOn list in backoffice
* @return string
*/
public function __toString()
{
return $this->field->getLabel() . ' -> ' . $this->value;
}
public function isIsDefault(): ?bool
{
return $this->isDefault;
}
public function getId(): ?int
{
return $this->id;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(?int $position): self
{
$this->position = $position;
return $this;
}
public function setIsDefault(bool $isDefault): self
{
$this->isDefault = $isDefault;
return $this;
}
public function getValue(): ?string
{
return $this->value;
}
public function setValue(string $value): self
{
$this->value = $value;
return $this;
}
public function getSlug(): ?string
{
return $this->slug;
}
public function setSlug(string $slug): self
{
$this->slug = $slug;
return $this;
}
public function getField(): ?FormulaireField
{
return $this->field;
}
public function setField(?FormulaireField $field): self
{
$this->field = $field;
return $this;
}
/**
* @return Collection<int, FormulaireField>
*/
public function getDependentFields(): Collection
{
return $this->dependentFields;
}
public function addDependentField(FormulaireField $dependentField): self
{
if (!$this->dependentFields->contains($dependentField)) {
$this->dependentFields->add($dependentField);
$dependentField->setDependsOn($this);
}
return $this;
}
public function removeDependentField(FormulaireField $dependentField): self
{
if ($this->dependentFields->removeElement($dependentField)) {
// set the owning side to null (unless already changed)
if ($dependentField->getDependsOn() === $this) {
$dependentField->setDependsOn(null);
}
}
return $this;
}
}