<?php
namespace App\Entity\App;
use App\Utils\Traits\ActivoTrait;
use App\Utils\Traits\PosicionTrait;
use App\Validator\Constraints\DateRange;
use DateTime;
use DateTimeZone;
use Doctrine\ORM\Mapping as ORM;
use Gedmo\Mapping\Annotation as Gedmo;
use Gedmo\SoftDeleteable\Traits\SoftDeleteableEntity;
use Gedmo\Timestampable\Traits\TimestampableEntity;
use Symfony\Component\Validator\Constraints as Assert;
/**
* Banner
*
*@ORM\Entity(repositoryClass="App\Repository\App\BannerRepository")
* @ORM\HasLifecycleCallbacks()
* @Gedmo\SoftDeleteable(fieldName="deletedAt", timeAware=false)
* @DateRange()
*/
class Banner
{
/**
* @var integer|null
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\Column(type="string", name="tipo_banner", length=255)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private string $tipoBanner;
/**
* @var string|null
* @ORM\Column(type="string", name="descripcion_banner")
* @ORM\Column(type="string", nullable=true)
* @Assert\Length(
* max = 5000,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $descripcion = null;
/**
* @ORM\Column(type="string", name="ubicacion_banner", length=255)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private string $ubicacion;
/**
* @ORM\Column(type="string", name="color_banner", length=50)
* @Assert\NotBlank(message="El valor es requerido")
* @Assert\Length(
* max = 50,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private string $color;
/**
* @ORM\Column(type="string", name="icono_banner", length=255)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $icono;
/**
* @var string|null
* @ORM\Column(type="string", name="texto_boton_principal", length=255, nullable= true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $textoBotonPrincipal = null;
/**
* @var string|null
* @ORM\Column(type="string", name="enlace_boton_principal", length=255, nullable= true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $enlaceBotonPrincipal = null;
/**
* @var string|null
* @ORM\Column(type="string", name="texto_boton_secundario", length=255, nullable= true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $textoBotonSecundario = null;
/**
* @var string|null
* @ORM\Column(type="string", name="enlace_boton_secundario", length=255, nullable= true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $enlaceBotonSecundario = null;
/**
* @var DateTime|null
* @ORM\Column(type="datetime")
* @Assert\NotNull(message="El valor es requerido")
*/
private ?DateTime $fechaInicio = null;
/**
* @var DateTime|null
* @ORM\Column(type="datetime")
* @Assert\NotNull(message="El valor es requerido")
*/
private ?DateTime $fechaFin = null;
/**
* @var string|null
* @ORM\Column(type="string", nullable= true)
* @Assert\Length(
* max = 255,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $tipoAlerta = null;
/**
* @var string|null
* @ORM\Column(type="string", nullable=true)
* @Assert\Length(
* max = 5000,
* maxMessage = "La cantidad maxima es {{ limit }} caracteres"
* )
*/
private ?string $descripcionAlerta = null;
/**
* @var bool
* @ORM\Column(type="boolean")
*/
private bool $activoAlerta = false;
/**
* @var DateTime|null
*@ORM\Column(type="datetime", nullable=true)
*/
private ?DateTime $fechaInicioAlerta = null;
/**
* @var DateTime|null
* *@ORM\Column(type="datetime", nullable=true)
*/
private ?DateTime $fechaFinAlerta = null;
public function getId(): ?int
{
return $this->id;
}
public function setId(?int $id): void
{
$this->id = $id;
}
public function getTipoBannerForTable(): string
{
return '<span class="badge badge-secondary badge-lighten"> ' . $this->tipoBanner . ' </span>' ;
}
public function getTipoBanner(): string
{
return $this->tipoBanner;
}
public function setTipoBanner(string $tipoBanner): void
{
$this->tipoBanner = $tipoBanner;
}
public function getDescripcion(): ?string
{
return $this->descripcion;
}
public function setDescripcion(?string $descripcion): void
{
$this->descripcion = $descripcion;
}
public function getUbicacion(): string
{
return $this->ubicacion;
}
public function setUbicacion(string $ubicacion): void
{
$this->ubicacion = $ubicacion;
}
public function getColorForTable(): string
{
//Aqui esta el error
// $color = $this->color === 'Claro' ? "badge badge-secondary badge-lighten" : "badge badge-secondary";
// return '<span class=" '.$color.'"> ' . $this->color . ' </span>' ;
return '<span class="badge badge-secondary badge-lighten"> ' . $this->color . ' </span>' ;
}
public function getColor(): string
{
return $this->color;
}
public function setColor(string $color): void
{
$this->color = $color;
}
public function getIcono(): ?string
{
return $this->icono;
}
public function setIcono(?string $icono): void
{
$this->icono = $icono;
}
public function getTextoBotonPrincipal(): ?string
{
return $this->textoBotonPrincipal;
}
public function setTextoBotonPrincipal(?string $textoBotonPrincipal): void
{
$this->textoBotonPrincipal = $textoBotonPrincipal;
}
public function getEnlaceBotonPrincipal(): ?string
{
return $this->enlaceBotonPrincipal;
}
public function setEnlaceBotonPrincipal(?string $enlaceBotonPrincipal): void
{
$this->enlaceBotonPrincipal = $enlaceBotonPrincipal;
}
public function getTextoBotonSecundario(): ?string
{
return $this->textoBotonSecundario;
}
public function setTextoBotonSecundario(?string $textoBotonSecundario): void
{
$this->textoBotonSecundario = $textoBotonSecundario;
}
public function getEnlaceBotonSecundario(): ?string
{
return $this->enlaceBotonSecundario;
}
public function setEnlaceBotonSecundario(?string $enlaceBotonSecundario): void
{
$this->enlaceBotonSecundario = $enlaceBotonSecundario;
}
public function getFechaInicio(): ?DateTime
{
if ($this->fechaInicio === null) {
return null;
}
return new DateTime($this->fechaInicio->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
public function setFechaInicio(?DateTime $fechaInicio): void
{
$this->fechaInicio = $fechaInicio;
if ($fechaInicio !== null){
$this->fechaInicio = new DateTime($fechaInicio->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
}
public function getFechaFin(): ?DateTime
{
if ($this->fechaFin === null) {
return null;
}
return new DateTime($this->fechaFin->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
public function setFechaFin(?DateTime $fechaFin): void
{
$this->fechaFin = $fechaFin;
if ($fechaFin !== null){
$this->fechaFin = new DateTime($fechaFin->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
}
public function getTipoAlerta(): ?string
{
return $this->tipoAlerta;
}
public function setTipoAlerta(?string $tipoAlerta): void
{
$this->tipoAlerta = $tipoAlerta;
}
public function getDescripcionAlerta(): ?string
{
return $this->descripcionAlerta;
}
public function setDescripcionAlerta(?string $descripcionAlerta): void
{
$this->descripcionAlerta = $descripcionAlerta;
}
public function isActivoAlerta(): bool
{
return $this->activoAlerta;
}
public function setActivoAlerta(bool $activoAlerta): void
{
$this->activoAlerta = $activoAlerta;
}
public function getFechaInicioAlerta(): ?DateTime
{
if ($this->fechaInicioAlerta === null) {
return null;
}
return new DateTime($this->fechaInicioAlerta->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
public function setFechaInicioAlerta(?DateTime $fechaInicioAlerta): void
{
$this->fechaInicioAlerta = $fechaInicioAlerta;
if ($fechaInicioAlerta !== null){
$this->fechaInicioAlerta = new DateTime($fechaInicioAlerta->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
}
public function getFechaFinAlerta(): ?DateTime
{
if ($this->fechaFinAlerta === null) {
return null;
}
return new DateTime($this->fechaFinAlerta->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
public function setFechaFinAlerta(?DateTime $fechaFinAlerta): void
{
$this->fechaFinAlerta = $fechaFinAlerta;
if ($fechaFinAlerta !== null){
$this->fechaFinAlerta = new DateTime($fechaFinAlerta->format("Y-m-d H:i:s"), new DateTimeZone('America/Argentina/Buenos_Aires'));
}
}
public function getClassCssAlerta()
{
$tiposAlerta = [
'Información' => 'badge badge-info badge-lighten',
'Peligro' => 'badge badge-danger badge-lighten',
'Advertencia' => 'badge badge-warning badge-lighten',
'OK' => 'badge badge-success badge-lighten'
];
$claseCssAlerta = '<span class="badge text-default"></span>';
if (array_key_exists($this->tipoAlerta, $tiposAlerta)){
$claseCssAlerta = '<span class="badge '. $tiposAlerta[$this->tipoAlerta] .' mr-2">' . $this->getTipoAlerta() . '</span>' ;
}
return $claseCssAlerta;
}
use ActivoTrait;
use PosicionTrait;
use TimestampableEntity;
use SoftDeleteableEntity;
}