<?php
namespace App\Entity\Gestiform\Formations\Catalogue\Parcours\Bloc;
use App\Entity\AbstractEntity;
use App\Entity\Gestiform\Formations\Catalogue\Module\Module;
use App\Entity\Gestiform\Formations\Session\SessionBlocModule;
use App\Repository\Gestiform\Formations\Catalogue\Parcours\Bloc\BlocModuleRepository;
use App\Trait\SortableEntity;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
/**
* @ORM\Entity(repositoryClass=BlocModuleRepository::class)
*/
class BlocModule extends AbstractEntity
{
use SortableEntity;
/**
* @Gedmo\SortableGroup()
* @ORM\ManyToOne(targetEntity=Bloc::class, inversedBy="blocModules", cascade={"persist"})
* @ORM\JoinColumn(nullable=false)
*/
private Bloc $bloc;
/**
* @ORM\ManyToOne(targetEntity=Module::class, inversedBy="blocModules", cascade={"persist"})
* @ORM\JoinColumn(nullable=false)
*/
private Module $module;
/**
* @ORM\OneToMany(targetEntity=SessionBlocModule::class, mappedBy="blocModule",cascade={"all"})
*/
private Collection $sessionBlocModules;
public function __construct()
{
$this->sessionBlocModules = new ArrayCollection();
}
public function getBloc(): ?Bloc
{
return $this->bloc;
}
public function setBloc(?Bloc $bloc): self
{
$this->bloc = $bloc;
return $this;
}
public function getModule(): ?Module
{
return $this->module;
}
public function setModule(?Module $module): self
{
$this->module = $module;
return $this;
}
public function getSessionBlocModules(): Collection
{
return $this->sessionBlocModules;
}
public function addSessionBlocModule(SessionBlocModule $sessionBlocModule): self
{
if (!$this->sessionBlocModules->contains($sessionBlocModule)) {
$this->sessionBlocModules->add($sessionBlocModule);
$sessionBlocModule->setBlocModule($this);
}
return $this;
}
public function removeSessionBlocModule(SessionBlocModule $sessionBlocModule): self
{
if ($this->sessionBlocModules->removeElement($sessionBlocModule)) {
// set the owning side to null (unless already changed)
if ($sessionBlocModule->getBlocModule() === $this) {
$sessionBlocModule->setBlocModule(null);
}
}
return $this;
}
}