<?php
namespace App\Core\Entity;
use App\Asistencia\Entity\Asistencia;
use App\Asistencia\Entity\Comentario;
use App\Asistencia\Entity\RegistroEvaluacion;
use App\Core\Entity\Curso;
use App\Core\Entity\Estudiante;
use App\Asistencia\Entity\Logro;
use App\Asistencia\Entity\Meta;
use App\Core\Entity\Institucion\Seccion;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="App\Core\Repository\EstudianteCursoRepository")
*/
class EstudianteCurso
{
/**
* @ORM\Id()
* @ORM\GeneratedValue()
* @ORM\Column(type="integer")
*/
private $id;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Estudiante", inversedBy="estudianteCursos")
* @ORM\JoinColumn(nullable=false)
*/
private $estudiante;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Curso", inversedBy="estudiantesCurso")
* @ORM\JoinColumn(nullable=false)
*/
private $curso;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Logro", mappedBy="estudianteCurso", orphanRemoval=true, cascade={"remove"})
*/
private $logros;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Meta", mappedBy="asignacion", orphanRemoval=true, cascade={"remove"})
*/
private $metas;
/**
* @ORM\OneToOne(targetEntity="App\Core\Entity\Agenda", cascade={"persist", "remove"})
* @ORM\JoinColumn(nullable=false)
*/
private $agenda;
/**
* @ORM\ManyToOne(targetEntity="App\Core\Entity\Institucion\Seccion", inversedBy="estudiantesCurso")
* @ORM\JoinColumn(nullable=true)
*/
private $seccion;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Asistencia", mappedBy="estudianteCurso", orphanRemoval=true, cascade={"remove"})
*/
private $asistencias;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\Comentario", mappedBy="estudianteCurso", orphanRemoval=true, cascade={"remove"})
*/
private $comentarios;
/**
* @ORM\OneToMany(targetEntity=PuntuacionClase::class, mappedBy="estudianteCurso", orphanRemoval=true, cascade={"remove"})
*/
private $puntuacionesClases;
/**
* @ORM\OneToMany(targetEntity="App\Asistencia\Entity\RegistroEvaluacion", mappedBy="estudianteCurso", orphanRemoval=true, cascade={"remove"})
*/
private $registroEvaluaciones;
public function __construct()
{
$this->logros = new ArrayCollection();
$this->metas = new ArrayCollection();
$this->asistencias = new ArrayCollection();
$this->comentarios = new ArrayCollection();
$this->puntuacionesClases = new ArrayCollection();
$this->registroEvaluaciones = new ArrayCollection();
}
public function getId(): ?int
{
return $this->id;
}
public function getEstudiante(): ?Estudiante
{
return $this->estudiante;
}
public function setEstudiante(?Estudiante $estudiante): self
{
$this->estudiante = $estudiante;
return $this;
}
public function getCurso(): ?Curso
{
return $this->curso;
}
public function setCurso(?Curso $curso): self
{
$this->curso = $curso;
return $this;
}
/**
* @return Collection|Logro[]
*/
public function getLogros(): Collection
{
return $this->logros;
}
public function addLogro(Logro $logro): self
{
if (!$this->logros->contains($logro)) {
$this->logros[] = $logro;
$logro->setEstudianteCurso($this);
}
return $this;
}
public function removeLogro(Logro $logro): self
{
if ($this->logros->contains($logro)) {
$this->logros->removeElement($logro);
// set the owning side to null (unless already changed)
if ($logro->getEstudianteCurso() === $this) {
$logro->setEstudianteCurso(null);
}
}
return $this;
}
/**
* @return Collection|Meta[]
*/
public function getMetas(): Collection
{
return $this->metas;
}
public function addMeta(Meta $meta): self
{
if (!$this->metas->contains($meta)) {
$this->metas[] = $meta;
$meta->setAsignacion($this);
}
return $this;
}
public function removeMeta(Meta $meta): self
{
if ($this->metas->contains($meta)) {
$this->metas->removeElement($meta);
// set the owning side to null (unless already changed)
if ($meta->getAsignacion() === $this) {
$meta->setAsignacion(null);
}
}
return $this;
}
public function getAgenda(): ?Agenda
{
return $this->agenda;
}
public function setAgenda(Agenda $agenda): self
{
$this->agenda = $agenda;
return $this;
}
public function getSeccion(): ?Seccion
{
return $this->seccion;
}
public function setSeccion(?Seccion $seccion): self
{
$this->seccion = $seccion;
return $this;
}
/**
* @return Collection|Asistencia[]
*/
public function getAsistencias(): Collection
{
return $this->asistencias;
}
public function addAsistencia(Asistencia $asistencia): self
{
if (!$this->asistencias->contains($asistencia)) {
$this->asistencias[] = $asistencia;
$asistencia->setEstudianteCurso($this);
}
return $this;
}
public function removeAsistencia(Asistencia $asistencia): self
{
if ($this->asistencias->contains($asistencia)) {
$this->asistencias->removeElement($asistencia);
// set the owning side to null (unless already changed)
if ($asistencia->getEstudianteCurso() === $this) {
$asistencia->setEstudianteCurso(null);
}
}
return $this;
}
/**
* @return Collection|Comentario[]
*/
public function getComentarios(): Collection
{
return $this->comentarios;
}
public function addComentario(Comentario $comentario): self
{
if (!$this->comentarios->contains($comentario)) {
$this->comentarios[] = $comentario;
$comentario->setEstudianteCurso($this);
}
return $this;
}
public function removeComentario(Comentario $comentario): self
{
if ($this->comentarios->contains($comentario)) {
$this->comentarios->removeElement($comentario);
// set the owning side to null (unless already changed)
if ($comentario->getEstudianteCurso() === $this) {
$comentario->setEstudianteCurso(null);
}
}
return $this;
}
/**
* @return Collection|PuntuacionClase[]
*/
public function getPuntuacionesClases(): Collection
{
return $this->puntuacionesClases;
}
public function addPuntuacionesClase(PuntuacionClase $puntuacionesClase): self
{
if (!$this->puntuacionesClases->contains($puntuacionesClase)) {
$this->puntuacionesClases[] = $puntuacionesClase;
$puntuacionesClase->setEstudianteCurso($this);
}
return $this;
}
public function removePuntuacionesClase(PuntuacionClase $puntuacionesClase): self
{
if ($this->puntuacionesClases->contains($puntuacionesClase)) {
$this->puntuacionesClases->removeElement($puntuacionesClase);
// set the owning side to null (unless already changed)
if ($puntuacionesClase->getEstudianteCurso() === $this) {
$puntuacionesClase->setEstudianteCurso(null);
}
}
return $this;
}
/**
* @return Collection|RegistroEvaluacion[]
*/
public function getRegistroEvaluaciones(): Collection
{
return $this->registroEvaluaciones;
}
public function addRegistroEvaluacione(RegistroEvaluacion $registroEvaluacione): self
{
if (!$this->registroEvaluaciones->contains($registroEvaluacione)) {
$this->registroEvaluaciones[] = $registroEvaluacione;
$registroEvaluacione->setEstudianteCurso($this);
}
return $this;
}
public function removeRegistroEvaluacione(RegistroEvaluacion $registroEvaluacione): self
{
if ($this->registroEvaluaciones->contains($registroEvaluacione)) {
$this->registroEvaluaciones->removeElement($registroEvaluacione);
// set the owning side to null (unless already changed)
if ($registroEvaluacione->getEstudianteCurso() === $this) {
$registroEvaluacione->setEstudianteCurso(null);
}
}
return $this;
}
}