<?php
namespace App\Entity\Gos\Uniqskills\Landing;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* LandingModule
*
* @ORM\Table(name="landing_module")
* @ORM\Entity(repositoryClass="App\Repository\Gos\Uniqskills\Landing\LandingModuleRepository")
*/
class LandingModule
{
/**
* @var int
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var int
*
* @ORM\Column(name="position", type="integer")
*/
private $position;
/**
* @var bool
*
* @ORM\Column(name="is_visible", type="boolean", options={"default":0})
*/
private $isVisible = false;
/**
* @var bool
*
* @ORM\Column(type="boolean", options={"default":0})
*/
private $inSecondMenu = false;
/**
* @ORM\ManyToOne(targetEntity="LandingModuleType", inversedBy="landingModules")
* @ORM\JoinColumn()
*/
private $landingModuleType;
/**
* @ORM\OneToMany(targetEntity="LandingModuleItem", mappedBy="landingModule", cascade={"persist", "remove"})
*/
private $landingModuleItems;
/**
* @ORM\ManyToOne(targetEntity="Landing", inversedBy="landingModules")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private $landing;
public function __construct()
{
$this->landingModuleItems = new \Doctrine\Common\Collections\ArrayCollection();
}
public function __clone()
{
if ($this->id)
{
$this->setId(null);
$items = new \Doctrine\Common\Collections\ArrayCollection();
foreach ($this->landingModuleItems as $landingModuleItem)
{
/** @var LandingModuleItem $itemClone */
/** @var LandingModuleItem $landingModuleItem */
$itemClone = clone $landingModuleItem;
$itemClone->setLandingModule($this);
$items->add($itemClone);
}
$this->position += 1;
$this->landingModuleItems = clone $items;
}
}
public function getId(): ?int
{
return $this->id;
}
public function setId($id): self
{
$this->id = $id;
return $this;
}
public function getPosition(): ?int
{
return $this->position;
}
public function setPosition(int $position): self
{
$this->position = $position;
return $this;
}
public function getInSecondMenu(): ?bool
{
return $this->inSecondMenu;
}
public function setInSecondMenu(int $inSecondMenu): self
{
$this->inSecondMenu = $inSecondMenu;
return $this;
}
public function getIsVisible(): ?bool
{
return $this->isVisible;
}
public function setIsVisible(bool $isVisible): self
{
$this->isVisible = $isVisible;
return $this;
}
public function getLandingModuleType(): ?LandingModuleType
{
return $this->landingModuleType;
}
public function setLandingModuleType(?LandingModuleType $landingModuleType): self
{
$this->landingModuleType = $landingModuleType;
return $this;
}
/**
* @return Collection|LandingModuleItem[]
*/
public function getLandingModuleItems(): Collection
{
return $this->landingModuleItems;
}
public function sortLandingModuleItems(array $sortingArray): self
{
/** @var LandingModuleItem $variable */
foreach ($sortingArray as $key => $variable)
{
/** @var LandingModuleItem $landingModuleItem */
foreach ($this->landingModuleItems as $landingModuleItem)
{
if ($variable->getVariableName() === $landingModuleItem->getVariableName())
{
$sortedLandingModuleItems[$key] = $landingModuleItem;
}
}
}
$sortedLandingModuleItems = new ArrayCollection($sortedLandingModuleItems);
$this->landingModuleItems = $sortedLandingModuleItems;
return $this;
}
public function addLandingModuleItem(LandingModuleItem $landingModuleItem): self
{
if (!$this->landingModuleItems->contains($landingModuleItem)) {
$this->landingModuleItems[] = $landingModuleItem;
$landingModuleItem->setLandingModule($this);
}
return $this;
}
public function removeLandingModuleItem(LandingModuleItem $landingModuleItem): self
{
if ($this->landingModuleItems->contains($landingModuleItem)) {
$this->landingModuleItems->removeElement($landingModuleItem);
// set the owning side to null (unless already changed)
if ($landingModuleItem->getLandingModule() === $this) {
$landingModuleItem->setLandingModule(null);
}
}
return $this;
}
public function getLanding(): ?Landing
{
return $this->landing;
}
public function setLanding(?Landing $landing): self
{
$this->landing = $landing;
return $this;
}
/* ****************************** GETTERS & SETTERS ****************************** */
}