<?php
namespace App\CmsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(
* repositoryClass="App\CmsBundle\Repository\LocaleSwitcherRepository"
* )
* @ORM\Table(
* name="locale_switcher",
* uniqueConstraints={
* @ORM\UniqueConstraint(name="locale_switcher_uindex", columns={"source_site_id", "source_page_id", "target_site_id", "target_page_id"})
* },
* indexes={
* @ORM\Index(name="locale_switcher_flag_index", columns={"flag"}),
* @ORM\Index(name="locale_switcher_source_site_index", columns={"source_site_id"}),
* @ORM\Index(name="locale_switcher_target_site_index", columns={"target_site_id"}),
* @ORM\Index(name="locale_switcher_source_page_path_index", columns={"source_page_id"}),
* @ORM\Index(name="locale_switcher_target_page_path_index", columns={"target_page_id"}),
* @ORM\Index(name="locale_switcher_position_index", columns={"position"}),
* }
* )
* @ORM\HasLifecycleCallbacks()
*/
class LocaleSwitcher
{
use IdTrait;
/**
* @ORM\Column(name="flag", type="string", length=2, nullable=true)
*/
private ?string $flag = 'WW';
/**
* @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Site")
* @ORM\JoinColumn(name="source_site_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private Site $sourceSite;
/**
* @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Page")
* @ORM\JoinColumn(name="source_page_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private Page $sourcePage;
/**
* @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Site")
* @ORM\JoinColumn(name="target_site_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private Site $targetSite;
/**
* @ORM\ManyToOne(targetEntity="App\CmsBundle\Entity\Page")
* @ORM\JoinColumn(name="target_page_id", referencedColumnName="id", nullable=false, onDelete="CASCADE")
*/
private Page $targetPage;
/**
* @ORM\Column(type="integer", nullable=true)
*/
private ?int $position = null;
/**
* @ORM\Column(type="string", length=255, nullable=true)
*/
private ?string $anchor = null;
/**
* @param string|null $flag
* @return $this
*/
public function setFlag(?string $flag): self
{
$this->flag = $flag;
return $this;
}
/**
* @return string|null
*/
public function getFlag(): ?string
{
return $this->flag;
}
/**
* @param Site $sourceSite
* @return $this
*/
public function setSourceSite(Site $sourceSite): self
{
$this->sourceSite = $sourceSite;
return $this;
}
/**
* @return Site|null
*/
public function getSourceSite(): ?Site
{
return $this->sourceSite;
}
/**
* @param Page $sourcePage
* @return $this
*/
public function setSourcePage(Page $sourcePage): self
{
$this->sourcePage = $sourcePage;
return $this;
}
/**
* @return Page|null
*/
public function getSourcePage(): ?Page
{
return $this->sourcePage;
}
/**
* @param Site $targetSite
* @return $this
*/
public function setTargetSite(Site $targetSite): self
{
$this->targetSite = $targetSite;
return $this;
}
/**
* @return Site|null
*/
public function getTargetSite(): ?Site
{
return $this->targetSite;
}
/**
* @param Page $targetPage
* @return $this
*/
public function setTargetPage(Page $targetPage): self
{
$this->targetPage = $targetPage;
return $this;
}
/**
* @return Page|null
*/
public function getTargetPage(): ?Page
{
return $this->targetPage;
}
/**
* @param int|null $position
* @return $this
*/
public function setPosition(?int $position): self
{
$this->position = $position;
return $this;
}
/**
* @return int|null
*/
public function getPosition(): ?int
{
return $this->position;
}
/**
* @param string|null $anchor
* @return $this
*/
public function setAnchor(?string $anchor): self
{
$this->anchor = $anchor;
return $this;
}
/**
* @return string|null
*/
public function getAnchor(): ?string
{
return $this->anchor;
}
/**
* @return string|null
*/
public function getSourcePagePath(): ?string
{
return $this->sourcePage?->getPath();
}
/**
* @return string|null
*/
public function getTargetPagePath(): ?string
{
return $this->targetPage?->getPath();
}
/**
* @return int|null
*/
public function getSourcePageId(): ?int
{
return $this->sourcePage?->getId();
}
/**
* @return int|null
*/
public function getTargetPageId(): ?int
{
return $this->targetPage?->getId();
}
}