<?php
namespace App\Entity\Gos\Uniqskills\Landing;
use Doctrine\ORM\Mapping as ORM;
/**
* LandingModuleItem
*
* @ORM\Table(name="landing_module_item")
* @ORM\Entity(repositoryClass="App\Repository\Gos\Uniqskills\Landing\LandingModuleItemRepository")
* @ORM\DiscriminatorColumn(name="variable_type", type="string")
* @ORM\DiscriminatorMap({
* "text" = "LandingModuleText",
* "file" = "LandingModuleFile",
* "json" = "LandingModuleJson",
* "boolean" = "LandingModuleBoolean"
* })
* @ORM\InheritanceType("SINGLE_TABLE")
* @ORM\HasLifecycleCallbacks
*/
abstract class LandingModuleItem implements \ArrayAccess
{
const VARIABLE_TYPE_TEXT = 'text';
const VARIABLE_TYPE_FILE = 'file';
const VARIABLE_TYPE_JSON = 'json';
const VARIABLE_TYPE_BOOLEAN = 'boolean';
/**
* @ORM\Column(type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*
* @var int
*/
protected $id;
/**
* @var \DateTime
*
* @ORM\Column(name="updated_at", type="datetime", nullable=true)
*/
protected $updatedAt;
/**
* @ORM\ManyToOne(targetEntity="LandingModule", inversedBy="landingModuleItems")
* @ORM\JoinColumn(nullable=false, onDelete="CASCADE")
*/
private $landingModule;
/**
* @var string
*
* @ORM\Column(name="variable_name", type="string", length=45, unique=false)
*/
private $variableName;
/**
* @ORM\Column(name="variable_value", type="text", nullable=true)
*
* @var string
*/
protected $variableValue;
/** @ORM\PreUpdate() */
public function preUpdate()
{
$this->updatedAt = new \DateTime();
}
public function __clone()
{
if ($this->id)
{
$this->setId(null);
}
}
/* ****************************** GETTERS & SETTERS ****************************** */
abstract public function getVariableType();
abstract public function setVariableValue($variableValue);
abstract public function getVariableValue();
public function offsetExists($offset)
{
$value = $this->{"get$offset"}();
return $value !== null;
}
public function offsetSet($offset, $value)
{
$this->{"set$offset"}($value);
}
public function offsetGet($offset)
{
return $this->{"get$offset"}();
}
public function offsetUnset($offset)
{
$this->{"set$offset"}(null);
}
/**
* @return int
*/
public function getId()
{
return $this->id;
}
/**
* Set id
*
* @param integer $id
*
* @return LandingModuleItem
*/
private function setId($id)
{
$this->id = $id;
return $this;
}
/**
* Set updatedAt
*
* @param \DateTime $updatedAt
*
* @return LandingModuleItem
*/
public function setUpdatedAt($updatedAt)
{
$this->updatedAt = $updatedAt;
return $this;
}
/**
* Get updatedAt
*
* @return \DateTime
*/
public function getUpdatedAt()
{
return $this->updatedAt;
}
/**
* Set landingModule
*
* @param LandingModule $landingModule
*
* @return LandingModuleItem
*/
public function setLandingModule(LandingModule $landingModule)
{
$this->landingModule = $landingModule;
return $this;
}
/**
* Get landingModuleType
*
* @return LandingModule
*/
public function getLandingModule()
{
return $this->landingModule;
}
/**
* Set variableName
*
* @param string $variableName
*
* @return LandingModuleItem
*/
public function setVariableName($variableName)
{
$this->variableName = $variableName;
return $this;
}
/**
* Get variableName
*
* @return string
*/
public function getVariableName()
{
return $this->variableName;
}
}