<?php
namespace App\Entity\App;
use App\Utils\Constants;
use App\Utils\Traits\ActivoTrait;
use App\Utils\Traits\PosicionTrait;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* RedSocial
*
* @ORM\Table(name="red_social", indexes={@ORM\Index(name="IDX_LINK", columns={"link"})})
* @ORM\Entity(repositoryClass="App\Repository\App\RedSocialRepository")
*/
class RedSocial
{
/**
* @var integer|null
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="link", type="string", length=255)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Regex(
* pattern="/^(http[s]?:\/\/){0,1}(www\.){0,1}[a-zA-Z0-9\.\-]+\.[a-zA-Z]{2,5}[\.]{0,1}[\/]?/",
* message="Ingrese un link correcto"
* )
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $link;
/**
* @var string|null
*
* @ORM\Column(name="icono", type="string", length=255)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $icono;
use ActivoTrait;
use PosicionTrait;
use TimestampableEntity;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @return string|null
*/
public function getLink(): ?string
{
return $this->link;
}
/**
* @param string|null $link
*/
public function setLink(?string $link): void
{
$this->link = $link;
}
/**
* @return string|null
*/
public function getIcono(): ?string
{
return $this->icono;
}
/**
* @param string|null $icono
*/
public function setIcono(?string $icono): void
{
$this->icono = $icono;
}
public function getNombre()
{
return array_flip(Constants::REDES_SOCIALES)[$this->getIcono()];
}
public function __toString()
{
return $this->getLink();
}
}