<?php
namespace App\Entity;
use App\Repository\AccionFormativaRepository;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
#[ORM\Entity(repositoryClass: AccionFormativaRepository::class)]
class AccionFormativa
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column(type: 'integer')]
private $id;
#[ORM\ManyToOne(targetEntity: NivelFormativo::class, inversedBy: 'accionesFormativas')]
private ?NivelFormativo $nivelFormativo = null;
#[Assert\NotBlank]
#[Assert\Length(max: 255)]
#[ORM\Column(type: 'string', length: 255)]
private ?string $nombre = null;
#[Assert\Length(max: 255)]
#[ORM\Column(type: 'string', length: 255, nullable: true)]
private ?string $codigoMinisterio = null;
#[Assert\Range(min: 2025, max: 2035)]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $anualidad = null;
#[ORM\Column(type: 'boolean')]
private bool $certificado = false;
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $aforoTitulares = null;
#[Assert\PositiveOrZero]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $aforoSuplentes = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $diasDuracion = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasDuracion = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasFormacionEspecifica = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasPracticaProfesional = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasFormacionTransversal = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasFormacionComplementaria = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasTutoriaEspecifica = null;
// Se guardará el valor en segundos por si se usa para cálculos.
#[Assert\Positive]
#[ORM\Column(type: 'integer', nullable: true)]
private ?int $horasTutoriaPractica = null;
#[Assert\Positive]
#[ORM\Column(type: 'float', nullable: true)]
private ?float $ayudaMaxima = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $descripcionCurso = null;
#[ORM\Column(type: 'text', nullable: true)]
private ?string $descripcionNivel = null;
#[ORM\Column(type: 'boolean')]
private bool $borrado = false;
#[ORM\OneToMany(targetEntity: Curso::class, mappedBy: 'accionFormativa')]
private Collection $cursos;
#[ORM\Column(type: 'boolean')]
private ?bool $requiereCarnetConducir = null;
#[ORM\Column(length: 7, nullable: true)]
private ?string $colorGantt = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $imagen = null;
public function __construct()
{
$this->cursos = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getNivelFormativo(): ?NivelFormativo
{
return $this->nivelFormativo;
}
public function setNivelFormativo(?NivelFormativo $nivelFormativo): self
{
$this->nivelFormativo = $nivelFormativo;
return $this;
}
public function getNombre(): ?string
{
return $this->nombre;
}
public function setNombre(?string $nombre): self
{
$this->nombre = $nombre;
return $this;
}
public function getCodigoMinisterio(): ?string
{
return $this->codigoMinisterio;
}
public function setCodigoMinisterio(?string $codigoMinisterio): self
{
$this->codigoMinisterio = $codigoMinisterio;
return $this;
}
public function getAnualidad(): ?int
{
return $this->anualidad;
}
public function setAnualidad(?int $anualidad): self
{
$this->anualidad = $anualidad;
return $this;
}
public function isCertificado(): ?bool
{
return $this->certificado;
}
public function setCertificado(bool $certificado): self
{
$this->certificado = $certificado;
return $this;
}
public function getAforoTitulares(): ?int
{
return $this->aforoTitulares;
}
public function setAforoTitulares(?int $aforoTitulares): self
{
$this->aforoTitulares = $aforoTitulares;
return $this;
}
public function getAforoSuplentes(): ?int
{
return $this->aforoSuplentes;
}
public function setAforoSuplentes(?int $aforoSuplentes): self
{
$this->aforoSuplentes = $aforoSuplentes;
return $this;
}
public function getDiasDuracion(): ?int
{
return $this->diasDuracion;
}
public function setDiasDuracion(?int $diasDuracion): self
{
$this->diasDuracion = $diasDuracion;
return $this;
}
public function getHorasDuracion(): ?int
{
return $this->horasDuracion;
}
public function setHorasDuracion(?int $horasDuracion): self
{
$this->horasDuracion = $horasDuracion;
return $this;
}
public function getHorasFormacionEspecifica(): ?int
{
return $this->horasFormacionEspecifica;
}
public function setHorasFormacionEspecifica(?int $horasFormacionEspecifica): self
{
$this->horasFormacionEspecifica = $horasFormacionEspecifica;
return $this;
}
public function getHorasPracticaProfesional(): ?int
{
return $this->horasPracticaProfesional;
}
public function setHorasPracticaProfesional(?int $horasPracticaProfesional): self
{
$this->horasPracticaProfesional = $horasPracticaProfesional;
return $this;
}
public function getHorasFormacionTransversal(): ?int
{
return $this->horasFormacionTransversal;
}
public function setHorasFormacionTransversal(?int $horasFormacionTransversal): self
{
$this->horasFormacionTransversal = $horasFormacionTransversal;
return $this;
}
public function getHorasFormacionComplementaria(): ?int
{
return $this->horasFormacionComplementaria;
}
public function setHorasFormacionComplementaria(?int $horasFormacionComplementaria): self
{
$this->horasFormacionComplementaria = $horasFormacionComplementaria;
return $this;
}
public function getHorasTutoriaEspecifica(): ?int
{
return $this->horasTutoriaEspecifica;
}
public function setHorasTutoriaEspecifica(?int $horasTutoriaEspecifica): self
{
$this->horasTutoriaEspecifica = $horasTutoriaEspecifica;
return $this;
}
public function getHorasTutoriaPractica(): ?int
{
return $this->horasTutoriaPractica;
}
public function setHorasTutoriaPractica(?int $horasTutoriaPractica): self
{
$this->horasTutoriaPractica = $horasTutoriaPractica;
return $this;
}
public function getAyudaMaxima(): ?float
{
return $this->ayudaMaxima;
}
public function setAyudaMaxima(?float $ayudaMaxima): self
{
$this->ayudaMaxima = $ayudaMaxima;
return $this;
}
public function getDescripcionCurso(): ?string
{
return $this->descripcionCurso;
}
public function setDescripcionCurso(?string $descripcionCurso): self
{
$this->descripcionCurso = $descripcionCurso;
return $this;
}
public function getDescripcionNivel(): ?string
{
return $this->descripcionNivel;
}
public function setDescripcionNivel(?string $descripcionNivel): self
{
$this->descripcionNivel = $descripcionNivel;
return $this;
}
public function isBorrado(): ?bool
{
return $this->borrado;
}
public function setBorrado(bool $borrado): self
{
$this->borrado = $borrado;
return $this;
}
/**
* @return Collection<int, Curso>
*/
public function getCursos(): Collection
{
return $this->cursos;
}
public function addCurso(Curso $curso): self
{
if (!$this->cursos->contains($curso)) {
$this->cursos[] = $curso;
$curso->setAccionFormativa($this);
}
return $this;
}
public function removeCurso(Curso $curso): self
{
// set the owning side to null (unless already changed)
if ($this->cursos->removeElement($curso) && $curso->getAccionFormativa() === $this) {
$curso->setAccionFormativa(null);
}
return $this;
}
public function isRequiereCarnetConducir(): ?bool
{
return $this->requiereCarnetConducir;
}
public function setRequiereCarnetConducir(bool $requiereCarnetConducir): self
{
$this->requiereCarnetConducir = $requiereCarnetConducir;
return $this;
}
public function getColorGantt(): ?string
{
return $this->colorGantt;
}
public function setColorGantt(?string $colorGantt): static
{
$this->colorGantt = $colorGantt;
return $this;
}
public function getImagen(): ?string
{
return $this->imagen;
}
public function setImagen(?string $imagen): static
{
$this->imagen = $imagen;
return $this;
}
}