<?phpnamespace App\Entity;use App\Repository\ActiviteDisponibiliteInscriptionRepository;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass=ActiviteDisponibiliteInscriptionRepository::class) */class ActiviteDisponibiliteInscription{ /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="activiteDisponibiliteInscriptions") * @ORM\JoinColumn(nullable=false) */ private $user; /** * @ORM\ManyToOne(targetEntity=ActiviteDisponibilite::class, inversedBy="activiteDisponibiliteInscriptions") * @ORM\JoinColumn(nullable=false) */ private $dispo; /** * @ORM\OneToOne(targetEntity=UserEleveCreditConsommation::class, mappedBy="utilisation_cours", cascade={"persist", "remove"}) */ private $userEleveCreditConsommation; /** * @ORM\ManyToOne(targetEntity=UserEnseignantLieu::class, inversedBy="activiteDisponibiliteInscriptions") */ private $lieu; /** * @ORM\Column(type="text", nullable=true) */ private $commentaire; /** * @ORM\ManyToOne(targetEntity=UserEnseignantFacture::class, inversedBy="cours") * @ORM\JoinColumn(onDelete="SET NULL") */ private $facture; public function getId(): ?int { return $this->id; } public function getUser(): ?User { return $this->user; } public function setUser(?User $user): self { $this->user = $user; return $this; } public function getDispo(): ?ActiviteDisponibilite { return $this->dispo; } public function setDispo(?ActiviteDisponibilite $dispo): self { $this->dispo = $dispo; return $this; } public function getUserEleveCreditConsommation(): ?UserEleveCreditConsommation { return $this->userEleveCreditConsommation; } public function setUserEleveCreditConsommation(?UserEleveCreditConsommation $userEleveCreditConsommation): self { $this->userEleveCreditConsommation = $userEleveCreditConsommation; return $this; } public function getHoursLeft(): int { $start = $this->getDispo()->getDebut()->getTimestamp(); $now = time(); $interval = $start - $now; $seconds = $interval; $hours = $seconds/(60*60); return $hours; } public function getLieu(): ?UserEnseignantLieu { return $this->lieu; } public function setLieu(?UserEnseignantLieu $lieu): self { $this->lieu = $lieu; return $this; } public function getCommentaire(): ?string { return $this->commentaire; } public function setCommentaire(?string $commentaire): self { $this->commentaire = $commentaire; return $this; } public function getLivret(): ?Livret { $estimations = $this->getUser()->getEstimations(); if($estimations->count()==0)return null; $livrets = $this->getDispo()->getCategorie()->getLivrets()->filter(function($element) use($estimations) { return $estimations->contains($element->getEstimations()); }); if($livrets->count()!=1)return null; return $livrets->first(); } public function getFacture(): ?UserEnseignantFacture { return $this->facture; } public function setFacture(?UserEnseignantFacture $facture): self { $this->facture = $facture; return $this; }}