<?php
namespace App\Entity;
use App\Entity\Traits\CitationTrait;
use App\Repository\SolutionRepository;
use Cofondateur\SocleTechniqueBundle\Annotation\CrudField;
use Cofondateur\SocleTechniqueBundle\Traits\PublishableInterface;
use Cofondateur\SocleTechniqueBundle\Traits\PublishableTrait;
use Cofondateur\SocleTechniqueBundle\Traits\SEOInterface;
use Cofondateur\SocleTechniqueBundle\Traits\SEOTrait;
use Cofondateur\SocleTechniqueBundle\Traits\SluggableInterface;
use Cofondateur\SocleTechniqueBundle\Traits\SluggableTrait;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\HttpFoundation\File\File;
use Vich\UploaderBundle\Mapping\Annotation as Vich;
use Vich\UploaderBundle\Mapping\Annotation\Uploadable;
use App\Form\SolutionObjectifFormType;
use App\Form\SolutionReferenceFormType;
use Cofondateur\SocleTechniqueBundle\Traits\SortableTrait;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=SolutionRepository::class)
* @UniqueEntity(
* fields={"slug"},
* errorPath="slug",
* message="Ce slug est déjà utilisé pour une autre solution"
* )
* @Uploadable()
*/
class Solution implements SEOInterface, SluggableInterface, PublishableInterface
{
use SEOTrait;
use CitationTrait;
use SluggableTrait;
use SortableTrait;
use PublishableTrait;
/**
* @ORM\Id
* @ORM\GeneratedValue
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(label="nom", index=true)
*/
private $name;
/**
* @ORM\Column(type="string")
*/
private $coverName;
/**
* @ORM\Column(type="integer")
*/
private $coverSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $coverUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="coverName", size="coverSize")
* @CrudField(label="Visuel principal (bandeau top)")
*/
private $coverFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(label="Alt")
*/
private $coverAlt;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Première section", label="Sur-titre")
*/
private $section1SubTitle;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Première section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
*/
private $section1Title;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Première section", label="Paragraphe", ckeditor=true)
*/
private $section1Paragraphe;
/**
* @ORM\Column(type="string")
*/
private $section1VisuelLeftName;
/**
* @ORM\Column(type="integer")
*/
private $section1VisuelLeftSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $section1VisuelLeftUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="section1VisuelLeftName", size="section1VisuelLeftSize")
* @CrudField(tab="Première section", label="Visuel de gauche")
*/
private $section1VisuelLeftFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(tab="Première section", label="Alt")
*/
private $section1VisuelLeftAlt;
/**
* @ORM\Column(type="string")
*/
private $section1VisuelBottomName;
/**
* @ORM\Column(type="integer")
*/
private $section1VisuelBottomSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $section1VisuelBottomUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="section1VisuelBottomName", size="section1VisuelBottomSize")
* @CrudField(tab="Première section", label="Visuel du bas")
*/
private $section1VisuelBottomFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(tab="Première section", label="Alt")
*/
private $section1VisuelBottomAlt;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Seconde section", label="Sur-titre")
*/
private $section2SubTitle;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Seconde section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
*/
private $section2Title;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Seconde section", label="Paragraphe", ckeditor=true)
*/
private $section2Paragraphe;
/**
* @ORM\Column(type="string")
*/
private $section2VisuelName;
/**
* @ORM\Column(type="integer")
*/
private $section2VisuelSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $section2VisuelUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="section2VisuelName", size="section2VisuelSize")
* @CrudField(tab="Seconde section", label="Visuel")
*/
private $section2VisuelFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(tab="Seconde section", label="Alt")
*/
private $section2VisuelAlt;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @CrudField(label="Sur-titre", tab="Citation")
*/
private $citationsubTitle;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Section bleue", label="Sur-titre")
*/
private $sectionBlueSubTitle;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Section bleue", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
*/
private $sectionBlueTitle;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Section bleue", label="Premier paragraphe", ckeditor=true)
*/
private $sectionBlueParagraphe1;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Section bleue", label="Second paragraphe", ckeditor=true)
*/
private $sectionBlueParagraphe2;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Quatrième Section", label="Sur-titre")
*/
private $section4SubTitle;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Quatrième Section", label="Titre (mettre entre étoiles pour rendre le titre avec le surlignage Exemple : 'ceci est en bleu *ceci est surligné*')")
*/
private $section4Title;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Quatrième Section", label="Paragraphe", ckeditor=true)
*/
private $section4Paragraphe;
/**
* @ORM\Column(type="string")
*/
private $Section4VisuelRightName;
/**
* @ORM\Column(type="integer")
*/
private $Section4VisuelRightSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $Section4VisuelRightUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="Section4VisuelRightName", size="Section4VisuelRightSize")
* @CrudField(tab="Quatrième Section", label="Visuel de droite")
*/
private $Section4VisuelRightFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(tab="Quatrième Section", label="Alt")
*/
private $Section4VisuelRightAlt;
/**
* @ORM\Column(type="string")
*/
private $Section4VisuelBottomName;
/**
* @ORM\Column(type="integer")
*/
private $Section4VisuelBottomSize;
/**
* @ORM\Column(type="datetime", nullable=true)
*/
private $Section4VisuelBottomUpdatedAt;
/**
* @Vich\UploadableField(mapping="default", fileNameProperty="Section4VisuelBottomName", size="Section4VisuelBottomSize")
* @CrudField(tab="Quatrième Section", label="Visuel du bas")
*/
private $Section4VisuelBottomFile;
/**
* @ORM\Column(type="string", nullable=true)
* @CrudField(tab="Quatrième Section", label="Alt")
*/
private $Section4VisuelBottomAlt;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @CrudField(label="Sur-titre", tab="Actions et objectifs")
*/
private $objectifSubTitle;
/**
* @ORM\Column(type="string", length=255, nullable=true)
* @CrudField(label="Titre", tab="Actions et objectifs")
*/
private $objectifTitle;
/**
* @ORM\OneToMany(targetEntity=SolutionObjectif::class, mappedBy="solution", cascade={"persist", "remove"})
* @CrudField(label="Objectifs", formType=SolutionObjectifFormType::class, tab="Actions et objectifs")
*/
private $solutionObjectifs;
/**
* @ORM\ManyToMany(targetEntity=ReferencePublic::class, inversedBy="solutions")
*/
private $referencesPublics;
/**
* @ORM\ManyToMany(targetEntity=ReferencePrive::class, inversedBy="solutions")
*/
private $referencesPrives;
/**
* @ORM\Column(type="string", length=255)
* @CrudField(tab="Contact", label="Titre")
*/
private $contactTitle;
/**
* @ORM\Column(type="text")
* @CrudField(tab="Contact", label="Paragraphe")
*/
private $contactParagraphe;
/**
* @ORM\OneToMany(targetEntity=SolutionReference::class, mappedBy="solution", cascade={"persist", "remove"})
* @ORM\OrderBy({"position" = "ASC"})
* @CrudField(tab="Références", label="Références", formType=SolutionReferenceFormType::class)
*/
private $solutionReferences;
public function __construct()
{
$this->solutionObjectifs = new ArrayCollection();
$this->referencesPublics = new ArrayCollection();
$this->referencesPrives = new ArrayCollection();
$this->solutionReferences = new ArrayCollection();
}
public function __toString(): string
{
return $this->getId() ?? "N/A";
}
public function getId(): ?int
{
return $this->id;
}
public function getCoverName(): ?string
{
return $this->coverName;
}
public function setCoverName(?string $coverName): self
{
$this->coverName = $coverName;
return $this;
}
public function getCoverSize(): ?int
{
return $this->coverSize;
}
public function setCoverSize(?int $coverSize): self
{
$this->coverSize = $coverSize;
return $this;
}
public function getCoverUpdatedAt(): ?\DateTimeInterface
{
return $this->coverUpdatedAt;
}
public function setCoverUpdatedAt(?\DateTimeInterface $coverUpdatedAt): self
{
$this->coverUpdatedAt = $coverUpdatedAt;
return $this;
}
public function getCoverFile(): ?File
{
return $this->coverFile;
}
public function setCoverFile(?File $coverFile): self
{
$this->coverFile = $coverFile;
if (null !== $this->coverFile) {
$this->coverUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getCoverAlt(): ?string
{
return $this->coverAlt;
}
public function setCoverAlt(?string $coverAlt): self
{
$this->coverAlt = $coverAlt;
return $this;
}
public function getSection1SubTitle(): ?string
{
return $this->section1SubTitle;
}
public function setSection1SubTitle(string $section1SubTitle): self
{
$this->section1SubTitle = $section1SubTitle;
return $this;
}
public function getSection1Title(): ?string
{
return $this->section1Title;
}
public function setSection1Title(string $section1Title): self
{
$this->section1Title = $section1Title;
return $this;
}
public function getSection1VisuelLeftName(): ?string
{
return $this->section1VisuelLeftName;
}
public function setSection1VisuelLeftName(?string $section1VisuelLeftName): self
{
$this->section1VisuelLeftName = $section1VisuelLeftName;
return $this;
}
public function getSection1VisuelLeftSize(): ?int
{
return $this->section1VisuelLeftSize;
}
public function setSection1VisuelLeftSize(?int $section1VisuelLeftSize): self
{
$this->section1VisuelLeftSize = $section1VisuelLeftSize;
return $this;
}
public function getSection1VisuelLeftUpdatedAt(): ?\DateTimeInterface
{
return $this->section1VisuelLeftUpdatedAt;
}
public function setSection1VisuelLeftUpdatedAt(?\DateTimeInterface $section1VisuelLeftUpdatedAt): self
{
$this->section1VisuelLeftUpdatedAt = $section1VisuelLeftUpdatedAt;
return $this;
}
public function getSection1VisuelLeftFile(): ?File
{
return $this->section1VisuelLeftFile;
}
public function setSection1VisuelLeftFile(?File $section1VisuelLeftFile): self
{
$this->section1VisuelLeftFile = $section1VisuelLeftFile;
if (null !== $this->section1VisuelLeftFile) {
$this->section1VisuelLeftUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getSection1VisuelLeftAlt(): ?string
{
return $this->section1VisuelLeftAlt;
}
public function setSection1VisuelLeftAlt(?string $section1VisuelLeftAlt): self
{
$this->section1VisuelLeftAlt = $section1VisuelLeftAlt;
return $this;
}
public function getSection1VisuelBottomName(): ?string
{
return $this->section1VisuelBottomName;
}
public function setSection1VisuelBottomName(?string $section1VisuelBottomName): self
{
$this->section1VisuelBottomName = $section1VisuelBottomName;
return $this;
}
public function getSection1VisuelBottomSize(): ?int
{
return $this->section1VisuelBottomSize;
}
public function setSection1VisuelBottomSize(?int $section1VisuelBottomSize): self
{
$this->section1VisuelBottomSize = $section1VisuelBottomSize;
return $this;
}
public function getSection1VisuelBottomUpdatedAt(): ?\DateTimeInterface
{
return $this->section1VisuelBottomUpdatedAt;
}
public function setSection1VisuelBottomUpdatedAt(?\DateTimeInterface $section1VisuelBottomUpdatedAt): self
{
$this->section1VisuelBottomUpdatedAt = $section1VisuelBottomUpdatedAt;
return $this;
}
public function getSection1VisuelBottomFile(): ?File
{
return $this->section1VisuelBottomFile;
}
public function setSection1VisuelBottomFile(?File $section1VisuelBottomFile): self
{
$this->section1VisuelBottomFile = $section1VisuelBottomFile;
if (null !== $this->section1VisuelBottomFile) {
$this->section1VisuelBottomUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getSection1VisuelBottomAlt(): ?string
{
return $this->section1VisuelBottomAlt;
}
public function setSection1VisuelBottomAlt(?string $section1VisuelBottomAlt): self
{
$this->section1VisuelBottomAlt = $section1VisuelBottomAlt;
return $this;
}
public function getSection1Paragraphe(): ?string
{
return $this->section1Paragraphe;
}
public function setSection1Paragraphe(string $section1Paragraphe): self
{
$this->section1Paragraphe = $section1Paragraphe;
return $this;
}
public function getSection2SubTitle(): ?string
{
return $this->section2SubTitle;
}
public function setSection2SubTitle(string $section2SubTitle): self
{
$this->section2SubTitle = $section2SubTitle;
return $this;
}
public function getSection2Title(): ?string
{
return $this->section2Title;
}
public function setSection2Title(string $section2Title): self
{
$this->section2Title = $section2Title;
return $this;
}
public function getSection2Paragraphe(): ?string
{
return $this->section2Paragraphe;
}
public function setSection2Paragraphe(string $section2Paragraphe): self
{
$this->section2Paragraphe = $section2Paragraphe;
return $this;
}
public function getSection2VisuelName(): ?string
{
return $this->section2VisuelName;
}
public function setSection2VisuelName(?string $section2VisuelName): self
{
$this->section2VisuelName = $section2VisuelName;
return $this;
}
public function getSection2VisuelSize(): ?int
{
return $this->section2VisuelSize;
}
public function setSection2VisuelSize(?int $section2VisuelSize): self
{
$this->section2VisuelSize = $section2VisuelSize;
return $this;
}
public function getSection2VisuelUpdatedAt(): ?\DateTimeInterface
{
return $this->section2VisuelUpdatedAt;
}
public function setSection2VisuelUpdatedAt(?\DateTimeInterface $section2VisuelUpdatedAt): self
{
$this->section2VisuelUpdatedAt = $section2VisuelUpdatedAt;
return $this;
}
public function getSection2VisuelFile(): ?File
{
return $this->section2VisuelFile;
}
public function setSection2VisuelFile(?File $section2VisuelFile): self
{
$this->section2VisuelFile = $section2VisuelFile;
if (null !== $this->section2VisuelFile) {
$this->section2VisuelUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getSection2VisuelAlt(): ?string
{
return $this->section2VisuelAlt;
}
public function setSection2VisuelAlt(?string $section2VisuelAlt): self
{
$this->section2VisuelAlt = $section2VisuelAlt;
return $this;
}
public function getSectionBlueSubTitle(): ?string
{
return $this->sectionBlueSubTitle;
}
public function setSectionBlueSubTitle(string $sectionBlueSubTitle): self
{
$this->sectionBlueSubTitle = $sectionBlueSubTitle;
return $this;
}
public function getSectionBlueTitle(): ?string
{
return $this->sectionBlueTitle;
}
public function setSectionBlueTitle(string $sectionBlueTitle): self
{
$this->sectionBlueTitle = $sectionBlueTitle;
return $this;
}
public function getSectionBlueParagraphe1(): ?string
{
return $this->sectionBlueParagraphe1;
}
public function setSectionBlueParagraphe1(string $sectionBlueParagraphe1): self
{
$this->sectionBlueParagraphe1 = $sectionBlueParagraphe1;
return $this;
}
public function getSectionBlueParagraphe2(): ?string
{
return $this->sectionBlueParagraphe2;
}
public function setSectionBlueParagraphe2(string $sectionBlueParagraphe2): self
{
$this->sectionBlueParagraphe2 = $sectionBlueParagraphe2;
return $this;
}
public function getSection4SubTitle(): ?string
{
return $this->section4SubTitle;
}
public function setSection4SubTitle(string $section4SubTitle): self
{
$this->section4SubTitle = $section4SubTitle;
return $this;
}
public function getSection4Title(): ?string
{
return $this->section4Title;
}
public function setSection4Title(string $section4Title): self
{
$this->section4Title = $section4Title;
return $this;
}
public function getSection4Paragraphe(): ?string
{
return $this->section4Paragraphe;
}
public function setSection4Paragraphe(string $section4Paragraphe): self
{
$this->section4Paragraphe = $section4Paragraphe;
return $this;
}
public function getSection4VisuelRightName(): ?string
{
return $this->Section4VisuelRightName;
}
public function setSection4VisuelRightName(?string $Section4VisuelRightName): self
{
$this->Section4VisuelRightName = $Section4VisuelRightName;
return $this;
}
public function getSection4VisuelRightSize(): ?int
{
return $this->Section4VisuelRightSize;
}
public function setSection4VisuelRightSize(?int $Section4VisuelRightSize): self
{
$this->Section4VisuelRightSize = $Section4VisuelRightSize;
return $this;
}
public function getSection4VisuelRightUpdatedAt(): ?\DateTimeInterface
{
return $this->Section4VisuelRightUpdatedAt;
}
public function setSection4VisuelRightUpdatedAt(?\DateTimeInterface $Section4VisuelRightUpdatedAt): self
{
$this->Section4VisuelRightUpdatedAt = $Section4VisuelRightUpdatedAt;
return $this;
}
public function getSection4VisuelRightFile(): ?File
{
return $this->Section4VisuelRightFile;
}
public function setSection4VisuelRightFile(?File $Section4VisuelRightFile): self
{
$this->Section4VisuelRightFile = $Section4VisuelRightFile;
if (null !== $this->Section4VisuelRightFile) {
$this->Section4VisuelRightUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getSection4VisuelRightAlt(): ?string
{
return $this->Section4VisuelRightAlt;
}
public function setSection4VisuelRightAlt(?string $Section4VisuelRightAlt): self
{
$this->Section4VisuelRightAlt = $Section4VisuelRightAlt;
return $this;
}
public function getSection4VisuelBottomName(): ?string
{
return $this->Section4VisuelBottomName;
}
public function setSection4VisuelBottomName(?string $Section4VisuelBottomName): self
{
$this->Section4VisuelBottomName = $Section4VisuelBottomName;
return $this;
}
public function getSection4VisuelBottomSize(): ?int
{
return $this->Section4VisuelBottomSize;
}
public function setSection4VisuelBottomSize(?int $Section4VisuelBottomSize): self
{
$this->Section4VisuelBottomSize = $Section4VisuelBottomSize;
return $this;
}
public function getSection4VisuelBottomUpdatedAt(): ?\DateTimeInterface
{
return $this->Section4VisuelBottomUpdatedAt;
}
public function setSection4VisuelBottomUpdatedAt(?\DateTimeInterface $Section4VisuelBottomUpdatedAt): self
{
$this->Section4VisuelBottomUpdatedAt = $Section4VisuelBottomUpdatedAt;
return $this;
}
public function getSection4VisuelBottomFile(): ?File
{
return $this->Section4VisuelBottomFile;
}
public function setSection4VisuelBottomFile(?File $Section4VisuelBottomFile): self
{
$this->Section4VisuelBottomFile = $Section4VisuelBottomFile;
if (null !== $this->Section4VisuelBottomFile) {
$this->Section4VisuelBottomUpdatedAt = new \DateTimeImmutable();
}
return $this;
}
public function getSection4VisuelBottomAlt(): ?string
{
return $this->Section4VisuelBottomAlt;
}
public function setSection4VisuelBottomAlt(?string $Section4VisuelBottomAlt): self
{
$this->Section4VisuelBottomAlt = $Section4VisuelBottomAlt;
return $this;
}
/**
* @return Collection<int, SolutionObjectif>
*/
public function getSolutionObjectifs(): Collection
{
return $this->solutionObjectifs;
}
public function addSolutionObjectif(SolutionObjectif $solutionObjectif): self
{
if (!$this->solutionObjectifs->contains($solutionObjectif)) {
$this->solutionObjectifs[] = $solutionObjectif;
$solutionObjectif->setSolution($this);
}
return $this;
}
public function removeSolutionObjectif(SolutionObjectif $solutionObjectif): self
{
if ($this->solutionObjectifs->removeElement($solutionObjectif)) {
// set the owning side to null (unless already changed)
if ($solutionObjectif->getSolution() === $this) {
$solutionObjectif->setSolution(null);
}
}
return $this;
}
public function getContactTitle(): ?string
{
return $this->contactTitle;
}
public function setContactTitle(string $contactTitle): self
{
$this->contactTitle = $contactTitle;
return $this;
}
public function getContactParagraphe(): ?string
{
return $this->contactParagraphe;
}
public function setContactParagraphe(string $contactParagraphe): self
{
$this->contactParagraphe = $contactParagraphe;
return $this;
}
/**
* @return Collection<int, ReferencePublic>
*/
public function getReferencesPublics(): Collection
{
return $this->referencesPublics;
}
public function addReferencesPublic(ReferencePublic $referencesPublic): self
{
if (!$this->referencesPublics->contains($referencesPublic)) {
$this->referencesPublics[] = $referencesPublic;
}
return $this;
}
public function removeReferencesPublic(ReferencePublic $referencesPublic): self
{
$this->referencesPublics->removeElement($referencesPublic);
return $this;
}
/**
* @return Collection<int, ReferencePrive>
*/
public function getReferencesPrives(): Collection
{
return $this->referencesPrives;
}
public function addReferencesPrife(ReferencePrive $referencesPrife): self
{
if (!$this->referencesPrives->contains($referencesPrife)) {
$this->referencesPrives[] = $referencesPrife;
}
return $this;
}
public function removeReferencesPrife(ReferencePrive $referencesPrife): self
{
$this->referencesPrives->removeElement($referencesPrife);
return $this;
}
public function getname(): ?string
{
return $this->name;
}
public function setname(string $name): self
{
$this->name = $name;
return $this;
}
public function getObjectifSubTitle(): ?string
{
return $this->objectifSubTitle;
}
public function setObjectifSubTitle(?string $objectifSubTitle): self
{
$this->objectifSubTitle = $objectifSubTitle;
return $this;
}
public function getObjectifTitle(): ?string
{
return $this->objectifTitle;
}
public function setObjectifTitle(?string $objectifTitle): self
{
$this->objectifTitle = $objectifTitle;
return $this;
}
/**
* @return Collection<int, SolutionReference>
*/
public function getSolutionReferences(): Collection
{
return $this->solutionReferences;
}
public function addSolutionReference(SolutionReference $solutionReference): self
{
if (!$this->solutionReferences->contains($solutionReference)) {
$this->solutionReferences[] = $solutionReference;
$solutionReference->setSolution($this);
}
return $this;
}
public function removeSolutionReference(SolutionReference $solutionReference): self
{
if ($this->solutionReferences->removeElement($solutionReference)) {
// set the owning side to null (unless already changed)
if ($solutionReference->getSolution() === $this) {
$solutionReference->setSolution(null);
}
}
return $this;
}
}