<?php
namespace App\Entity\WebsiteParams;
use App\Repository\WebsiteParams\ModuleParamsRepository;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
/**
* @ORM\Entity(repositoryClass=ModuleParamsRepository::class)
*/
class ModuleParams extends WebsiteParams
{
public const INTEGER = 'integer';
public const STRING = 'string';
public const BOOLEAN = 'boolean';
public const MODULE_SLIDER = 'module_slider';
public const MODULE_STRATE = 'module_strate';
public const MODULE_PUNTOS = 'module_puntos';
public const MODULE_GODPARENT = 'module_godparent';
public const MODULE_ARRAY = [
self::MODULE_SLIDER,
self::MODULE_STRATE,
self::MODULE_PUNTOS,
self::MODULE_GODPARENT,
];
public const FIELDS_STRATE = [
'puntos_to_reach' => self::BOOLEAN,
];
public const FIELDS_PUNTOS = [
'type' => [
'item' => self::BOOLEAN,
'amount' => self::BOOLEAN,
],
'point' => self::INTEGER,
];
public const FIELDS_GODPARENT = [
'point' => self::INTEGER,
];
public const FIELDS_MODULE = [
self::MODULE_STRATE => self::FIELDS_STRATE,
self::MODULE_PUNTOS => self::FIELDS_PUNTOS,
self::MODULE_GODPARENT => self::FIELDS_GODPARENT,
];
/**
* @ORM\Column(type="string", length=255)
* @Assert\Choice(
* choices=ModuleParams::MODULE_ARRAY,
* message="Choisissez un module valide."
* )
*/
private $type;
/**
* @ORM\Column(type="datetime", options={"default": "CURRENT_TIMESTAMP"})
*/
private $startDate;
/**
* @ORM\Column(type="datetime", options={"default": "CURRENT_TIMESTAMP"}, nullable=true)
*/
private $endDate;
/**
* @ORM\Column(type="boolean", options={"default": 0})
*/
private bool $online = false;
/**
* @ORM\Column(type="array", nullable=true)
*/
private $extraConfig;
public function getType(): ?string
{
return $this->type;
}
public function setType(string $type): self
{
$this->type = $type;
return $this;
}
public function getStartDate()
{
return $this->startDate;
}
public function setStartDate($startDate): ModuleParams
{
$this->startDate = $startDate;
return $this;
}
public function getEndDate()
{
return $this->endDate;
}
public function setEndDate($endDate): ModuleParams
{
$this->endDate = $endDate;
return $this;
}
public function isOnline(): bool
{
return $this->online;
}
public function setOnline(bool $online): ModuleParams
{
$this->online = $online;
return $this;
}
public function getExtraConfig()
{
return $this->extraConfig;
}
public function setExtraConfig($extraConfig)
{
$this->extraConfig = $extraConfig;
return $this;
}
}