<?php
namespace App\Entity\Webfactory\Page;
use App\Entity\Adherent\Magasin;
use App\Entity\Webfactory\PageAbstractWidgetAbstract;
use App\Entity\Webfactory\WebfactoryPage;
use App\Entity\Webfactory\WebfactoryTheme;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\InheritanceType('JOINED')]
#[ORM\DiscriminatorColumn(name: 'discr', type: 'string')]
#[ORM\DiscriminatorMap([
'IndexClassique' => \App\Entity\Webfactory\Page\Classique\Index::class,
'IndexCreateur' => \App\Entity\Webfactory\Page\Createur\Index::class,
'MagasinClassique' => \App\Entity\Webfactory\Page\Classique\Store::class,
'MagasinCreateur' => \App\Entity\Webfactory\Page\Createur\Store::class,
'MarquesClassique' => \App\Entity\Webfactory\Page\Classique\Brands::class,
'MarquesCreateur' => \App\Entity\Webfactory\Page\Createur\Brands::class,
'TeamClassique' => \App\Entity\Webfactory\Page\Classique\Team::class,
'TeamCreateur' => \App\Entity\Webfactory\Page\Createur\Team::class,
'ChoiceStoreClassique' => \App\Entity\Webfactory\Page\Classique\ChoiceStore::class,
'ChoiceStoreCreateur' => \App\Entity\Webfactory\Page\Createur\ChoiceStore::class,
'NewsClassique' => \App\Entity\Webfactory\Page\Classique\News::class,
'NewsCreateur' => \App\Entity\Webfactory\Page\Createur\News::class,
'ContactClassique' => \App\Entity\Webfactory\Page\Classique\Contact::class,
'ContactCreateur' => \App\Entity\Webfactory\Page\Createur\Contact::class,
'PriseDeRdvClassique' => \App\Entity\Webfactory\Page\Classique\Appointment::class,
'PriseDeRdvCreateur' => \App\Entity\Webfactory\Page\Createur\Appointment::class,
'StoresListClassique' => \App\Entity\Webfactory\Page\Classique\StoresList::class,
'StoresListCreateur' => \App\Entity\Webfactory\Page\Createur\StoresList::class])
]
abstract class PageAbstract
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\ManyToOne(targetEntity: Magasin::class, inversedBy: 'pageAbstracts')]
#[ORM\JoinColumn(name: 'magasin', referencedColumnName: 'k_adherent', nullable: false)]
private $magasin;
#[ORM\ManyToOne(targetEntity: WebfactoryPage::class, inversedBy: 'pageAbstracts')]
#[ORM\JoinColumn(name: 'page_id', referencedColumnName: 'identifier')]
private $page;
#[ORM\Column(type: 'string', nullable: false)]
private $theme;
#[ORM\Column(type: 'text')]
private $lang;
#[ORM\Column(type: 'json', nullable: true)]
private $widgetsList;
public function getId(): ?int
{
return $this->id;
}
public function getMagasin(): ?Magasin
{
return $this->magasin;
}
public function setMagasin(?Magasin $magasin): self
{
$this->magasin = $magasin;
return $this;
}
public function getPage(): ?WebfactoryPage
{
return $this->page;
}
public function setPage(?WebfactoryPage $page): self
{
$this->page = $page;
return $this;
}
/**
* @return mixed
*/
public function getTheme()
{
return $this->theme;
}
public function setTheme(mixed $theme): void
{
$this->theme = $theme;
}
/**
* @return mixed
*/
public function getLang()
{
return $this->lang;
}
public function setLang(mixed $lang): void
{
$this->lang = $lang;
}
/**
* @return mixed
*/
public function getWidgetsList()
{
return $this->widgetsList;
}
public function setWidgetsList(mixed $widgetsList): void
{
$this->widgetsList = $widgetsList;
}
}