<?php
namespace App\Entity\App;
use App\Utils\CommonFunctions;
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;
/**
* MaterialRecurso
*
* @ORM\Table(name="material_recurso", indexes={@ORM\Index(name="IDX_NOMBRE", columns={"nombre"})})
* @ORM\Entity(repositoryClass="App\Repository\App\MaterialRecursoRepository")
*/
class MaterialRecurso
{
/**
* @var integer|null
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue
*/
private $id;
/**
* @var string|null
*
* @ORM\Column(name="nombre", type="string", length=255)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $nombre;
/**
* @var string|null
*
* @ORM\Column(name="link", type="text")
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 1000,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private $link;
/**
* @var Categoria|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\App\Categoria", inversedBy="materialesRecursos")
* @ORM\JoinColumn(name="categoria_id", referencedColumnName="id")
* @Assert\NotBlank(message="Categoria requerida")
*/
private $categoria;
/**
* @var Grupo|null
*
* @ORM\ManyToOne(targetEntity="App\Entity\App\Grupo")
* @ORM\JoinColumn(name="grupo_id", referencedColumnName="id")
*/
private $grupo;
use ActivoTrait;
use PosicionTrait;
use TimestampableEntity;
/**
* @return int|null
*/
public function getId(): ?int
{
return $this->id;
}
/**
* @param int|null $id
*/
public function setId(?int $id): void
{
$this->id = $id;
}
/**
* @return string|null
*/
public function getNombre(): ?string
{
return $this->nombre;
}
/**
* @param string|null $nombre
*/
public function setNombre(?string $nombre): void
{
$this->nombre = $nombre;
}
/**
* @return string|null
*/
public function getLink(): ?string
{
return $this->link;
}
/**
* @param string|null $link
*/
public function setLink(?string $link): void
{
$this->link = $link;
}
/**
* @return Categoria|null
*/
public function getCategoria(): ?Categoria
{
return $this->categoria;
}
/**
* @param Categoria|null $categoria
*/
public function setCategoria(?Categoria $categoria): void
{
$this->categoria = $categoria;
}
/**
* @return Grupo|null
*/
public function getGrupo(): ?Grupo
{
return $this->grupo;
}
/**
* @param Grupo|null $grupo
*/
public function setGrupo(?Grupo $grupo): void
{
$this->grupo = $grupo;
}
public function getValidLink()
{
$baseUrl = CommonFunctions::getParameterUrl('BASE_URL_DRUPAL', true);
return preg_replace('/^BASE_URL/', '', preg_replace('/^BASE_URL\//', $baseUrl, 'BASE_URL' . $this->getLink()));
}
public function __toString()
{
return $this->getNombre() ?: 'Nuevo material/recurso';
}
}