src/Entity/Etablissement.php line 27

  1. <?php
  2. namespace App\Entity;
  3. use ApiPlatform\Metadata\ApiResource;
  4. use ApiPlatform\Metadata\GetCollection;
  5. use App\Controller\Api\Controller\Etablissement\AllController;
  6. use App\Repository\EtablissementRepository;
  7. use Doctrine\Common\Collections\ArrayCollection;
  8. use Doctrine\Common\Collections\Collection;
  9. use Doctrine\ORM\Mapping as ORM;
  10. use Symfony\Component\Serializer\Annotation\Groups;
  11. use Symfony\Component\Validator\Constraints as Assert;
  12. #[ORM\Entity(repositoryClassEtablissementRepository::class)]
  13. #[ApiResource(
  14.     operations: [
  15.         new GetCollection(),
  16.         new GetCollection(
  17.             name'etablissements',
  18.             uriTemplate'schools',
  19.             controllerAllController::class
  20.         )
  21.     ],
  22.     normalizationContext: ['groups' => ['read:etablissement:collection']]
  23. )]
  24. class Etablissement
  25. {
  26.     #[ORM\Id]
  27.     #[ORM\GeneratedValue]
  28.     #[ORM\Column]
  29.     #[Groups(['read:etablissement:collection''read:user:item'])]
  30.     private ?int $id null;
  31.     #[ORM\Column(length255)]
  32.     #[Assert\NotBlank(message"Ne peut être vide !")]
  33.     #[Assert\NotNull(message"Ne peut être nul !")]
  34.     #[Groups(['read:etablissement:collection''read:user:item'])]
  35.     private ?string $name null;
  36.     #[ORM\Column(length150)]
  37.     #[Assert\NotBlank(message"Ne peut être vide !")]
  38.     #[Assert\NotNull(message"Ne peut être nul !")]
  39.     #[Groups(['read:etablissement:collection''read:user:item'])]
  40.     private ?string $ville null;
  41.     #[ORM\ManyToOne(inversedBy'etablissements')]
  42.     #[ORM\JoinColumn(nullablefalse)]
  43.     #[Groups(['read:etablissement:collection''read:user:item'])]
  44.     private ?Pays $pays null;
  45.     #[ORM\OneToMany(mappedBy'etablissement'targetEntityEleve::class)]
  46.     private Collection $eleves;
  47.     #[ORM\OneToMany(mappedBy'etablissement'targetEntityEnseignant::class)]
  48.     private Collection $enseignants;
  49.     public function __construct()
  50.     {
  51.         $this->eleves = new ArrayCollection();
  52.         $this->enseignants = new ArrayCollection();
  53.     }
  54.     public function getId(): ?int
  55.     {
  56.         return $this->id;
  57.     }
  58.     public function getName(): ?string
  59.     {
  60.         return $this->name;
  61.     }
  62.     public function setName(string $name): self
  63.     {
  64.         $this->name $name;
  65.         return $this;
  66.     }
  67.     public function getVille(): ?string
  68.     {
  69.         return $this->ville;
  70.     }
  71.     public function setVille(string $ville): self
  72.     {
  73.         $this->ville $ville;
  74.         return $this;
  75.     }
  76.     public function getPays(): ?Pays
  77.     {
  78.         return $this->pays;
  79.     }
  80.     public function setPays(?Pays $pays): self
  81.     {
  82.         $this->pays $pays;
  83.         return $this;
  84.     }
  85.     /**
  86.      * @return Collection<int, Eleve>
  87.      */
  88.     public function getEleves(): Collection
  89.     {
  90.         return $this->eleves;
  91.     }
  92.     public function addElefe(Eleve $elefe): self
  93.     {
  94.         if (!$this->eleves->contains($elefe)) {
  95.             $this->eleves->add($elefe);
  96.             $elefe->setEtablissement($this);
  97.         }
  98.         return $this;
  99.     }
  100.     public function removeElefe(Eleve $elefe): self
  101.     {
  102.         if ($this->eleves->removeElement($elefe)) {
  103.             // set the owning side to null (unless already changed)
  104.             if ($elefe->getEtablissement() === $this) {
  105.                 $elefe->setEtablissement(null);
  106.             }
  107.         }
  108.         return $this;
  109.     }
  110.     /**
  111.      * @return Collection<int, Enseignant>
  112.      */
  113.     public function getEnseignants(): Collection
  114.     {
  115.         return $this->enseignants;
  116.     }
  117.     public function addEnseignant(Enseignant $enseignant): self
  118.     {
  119.         if (!$this->enseignants->contains($enseignant)) {
  120.             $this->enseignants->add($enseignant);
  121.             $enseignant->setEtablissement($this);
  122.         }
  123.         return $this;
  124.     }
  125.     public function removeEnseignant(Enseignant $enseignant): self
  126.     {
  127.         if ($this->enseignants->removeElement($enseignant)) {
  128.             // set the owning side to null (unless already changed)
  129.             if ($enseignant->getEtablissement() === $this) {
  130.                 $enseignant->setEtablissement(null);
  131.             }
  132.         }
  133.         return $this;
  134.     }
  135. }