<?php
namespace App\Entity\Webfactory\Widget;
use App\Entity\Adherent\Magasin;
use App\Repository\Webfactory\Widget\WidgetAbstractRepository;
use App\Entity\Webfactory\PageAbstractWidgetAbstract;
use App\Entity\Webfactory\Page\PageWidgetsList;
use App\Entity\Webfactory\WebfactoryCustomPage;
use App\Entity\Webfactory\WebfactoryPage;
use App\Entity\Webfactory\WebfactoryTheme;
use App\Entity\Webfactory\WebfactoryWidget;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: WidgetAbstractRepository::class)]
#[ORM\InheritanceType('JOINED')]
#[ORM\DiscriminatorColumn(name: 'discr', type: 'string')]
#[ORM\DiscriminatorMap([
'GeneralWidget' => \App\Entity\Webfactory\Widget\GeneralWidget::class,
'EquipesClassique' => \App\Entity\Webfactory\Widget\Classique\Teams::class,
'EquipesCreateur' => \App\Entity\Webfactory\Widget\Createur\Teams::class,
'VerbatimClassique' => \App\Entity\Webfactory\Widget\Classique\Verbatim::class,
'VerbatimCreateur' => \App\Entity\Webfactory\Widget\Createur\Verbatim::class,
'StorePresentationClassique' => \App\Entity\Webfactory\Widget\Classique\Store_presentation::class,
'StorePresentationCreateur' => \App\Entity\Webfactory\Widget\Createur\Store_presentation::class,
'PromoteClassique' => \App\Entity\Webfactory\Widget\Classique\Promote::class,
'PromoteCreateur' => \App\Entity\Webfactory\Widget\Createur\Promote::class,
'MoreAboutClassique' => \App\Entity\Webfactory\Widget\Classique\More_about::class,
'MoreAboutCreateur' => \App\Entity\Webfactory\Widget\Createur\More_about::class,
'GalleryClassique' => \App\Entity\Webfactory\Widget\Classique\Gallery::class,
'GalleryCreateur' => \App\Entity\Webfactory\Widget\Createur\Gallery::class,
'BrandsClassique' => \App\Entity\Webfactory\Widget\Classique\Brands::class,
'BrandsCreateur' => \App\Entity\Webfactory\Widget\Createur\Brands::class,
'Services_specialities' => \App\Entity\Webfactory\Widget\WidgetServiceSpecialities::class,
'CustomTextClassique' => \App\Entity\Webfactory\Widget\Classique\Custom_text::class,
'CustomTextCreateur' => \App\Entity\Webfactory\Widget\Createur\Custom_text::class,
'faqCreateur' => \App\Entity\Webfactory\Widget\Createur\Faq::class,
'FaqClassique' => \App\Entity\Webfactory\Widget\Classique\Faq::class,
'NotificationClassique' => \App\Entity\Webfactory\Widget\Classique\Notification::class,
'NotificationCreateur' => \App\Entity\Webfactory\Widget\Createur\Notification::class])
]
abstract class WidgetAbstract
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\ManyToOne(targetEntity: Magasin::class, inversedBy: 'widgetAbstracts')]
#[ORM\JoinColumn(name: 'magasin', referencedColumnName: 'k_adherent', nullable: false)]
private $magasin;
#[ORM\ManyToOne(targetEntity: WebfactoryWidget::class, inversedBy: 'widgetAbstracts')]
#[ORM\JoinColumn(name: 'widget_id', referencedColumnName: 'identifier')]
private $widget;
#[ORM\Column(type: 'string', nullable: false)]
private $theme;
#[ORM\Column(type: 'text')]
private $lang;
#[ORM\ManyToOne(targetEntity: WebfactoryPage::class, inversedBy: 'widgetAbstracts')]
#[ORM\JoinColumn(name: 'page_id', referencedColumnName: 'identifier')]
private $page;
#[ORM\ManyToOne(targetEntity: WebfactoryCustomPage::class, inversedBy: 'widgetAbstracts')]
private $pageCustom;
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 getWidget(): ?WebfactoryWidget
{
return $this->widget;
}
public function setWidget(?WebfactoryWidget $widget): self
{
$this->widget = $widget;
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;
}
public function getPage(): ?WebfactoryPage
{
return $this->page;
}
public function setPage(?WebfactoryPage $page): self
{
$this->page = $page;
return $this;
}
public function getPageCustom(): ?WebfactoryCustomPage
{
return $this->pageCustom;
}
public function setPageCustom(?WebfactoryCustomPage $pageCustom): self
{
$this->pageCustom = $pageCustom;
return $this;
}
public function setId($id): self
{
$this->id = $id;
return $this;
}
}