<?php
namespace App\Entity\App;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use JsonSerializable;
use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Parameter
*
* @ORM\Table(name="parameter", indexes={@ORM\Index(name="IDX_NAME", columns={"name"})})
* @ORM\Entity(repositoryClass="App\Repository\App\ParameterRepository")
*
* @UniqueEntity(
* fields="name",
* errorPath="name",
* message="El nombre ya existe"
* )
*/
class Parameter implements JsonSerializable
{
const TYPE_SHORT_TEXT = 'input';
const TYPE_BOOL = 'toggle';
/**
* @var integer|null
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="type", type="string", length=255, nullable=true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $type;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=255, unique=true)
* @Assert\NotBlank(message="Name requerido")
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $name;
/**
* @var string|null
*
* @ORM\Column(name="value", type="text", nullable=true)
*/
private $value;
/**
* @var string|null
*
* @ORM\Column(name="description", type="text", nullable=true)
* @Assert\Length(
* max = 1000,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $description;
/**
* @var string|null
*
* @ORM\Column(name="help", type="string", length=255, nullable=true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $help;
use TimestampableEntity;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @return string|null
*/
public function getType(): ?string
{
return $this->type;
}
/**
* @param string|null $type
*/
public function setType(?string $type): void
{
$this->type = $type;
}
/**
* @return string
*/
public function getName(): string
{
return $this->name;
}
/**
* @param string $name
*/
public function setName(string $name): void
{
$this->name = $name;
}
/**
* @return string|null
*/
public function getValue(): ?string
{
return $this->value;
}
/**
* @param string|null $value
*/
public function setValue(?string $value): void
{
$this->value = $value;
}
/**
* @return string|null
*/
public function getDescription(): ?string
{
return $this->description;
}
/**
* @param string|null $description
*/
public function setDescription(?string $description): void
{
$this->description = $description;
}
/**
* @return string|null
*/
public function getHelp(): ?string
{
return $this->help;
}
/**
* @param string|null $help
*/
public function setHelp(?string $help): void
{
$this->help = $help;
}
public function __toString()
{
return $this->getName() . ': ' . $this->getValue();
}
/**
* Specify data which should be serialized to JSON
* @link http://php.net/manual/en/jsonserializable.jsonserialize.php
* @return mixed data which can be serialized by <b>json_encode</b>,
* which is a value of any type other than a resource.
* @since 5.4.0
*/
public function jsonSerialize()
{
return array(
$this->getName() => $this->getValue()
);
}
}