src/Entity/Sound.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\SoundRepository;
  4. use DateTimeImmutable;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use Symfony\Component\HttpFoundation\File\File;
  9. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  10. #[ORM\Entity(repositoryClassSoundRepository::class)]
  11. #[Vich\Uploadable]
  12. class Sound
  13. {
  14.     #[ORM\Id]
  15.     #[ORM\GeneratedValue]
  16.     #[ORM\Column]
  17.     private ?int $id null;
  18.     #[ORM\Column(length255)]
  19.     private ?string $title null;
  20.     #[Vich\UploadableField(mapping'sounds'fileNameProperty'picture')]
  21.     private ?File $imageFile null;
  22.     #[ORM\Column(length255nullabletrue)]
  23.     private ?string $picture null;
  24.     #[ORM\Column(length255nullabletrue)]
  25.     private ?string $file null;
  26.     #[ORM\ManyToOne(inversedBy'sounds')]
  27.     private ?Instrument $instrument null;
  28.     #[ORM\ManyToOne(inversedBy'sounds')]
  29.     private ?Artist $artist null;
  30.     #[ORM\ManyToOne(inversedBy'sounds')]
  31.     private ?Player $player null;
  32.     #[ORM\Column(nullabletrue)]
  33.     private ?\DateTimeImmutable $updatedAt null;
  34.     #[ORM\ManyToMany(targetEntityUser::class, mappedBy'soundsBookmarked')]
  35.     private Collection $users;
  36.     #[ORM\Column(nullabletrue)]
  37.     private ?int $seekTo null;
  38.     public function __construct()
  39.     {
  40.         $this->users = new ArrayCollection();
  41.     }
  42.     /**
  43.      * @return File|null
  44.      */
  45.     public function getImageFile(): ?File
  46.     {
  47.         return $this->imageFile;
  48.     }
  49.     /**
  50.      * @param File|null $imageFile
  51.      */
  52.     public function setImageFile(?File $imageFile): void
  53.     {
  54.         $this->imageFile $imageFile;
  55.         if (null !== $imageFile) {
  56.             // It is required that at least one field changes if you are using doctrine
  57.             // otherwise the event listeners won't be called and the file is lost
  58.             $this->updatedAt = new DateTimeImmutable();
  59.         }
  60.     }
  61.     public function getId(): ?int
  62.     {
  63.         return $this->id;
  64.     }
  65.     public function getTitle(): ?string
  66.     {
  67.         return $this->title;
  68.     }
  69.     public function setTitle(string $title): self
  70.     {
  71.         $this->title $title;
  72.         return $this;
  73.     }
  74.     public function getPicture(): ?string
  75.     {
  76.         return $this->picture;
  77.     }
  78.     public function setPicture(?string $picture): self
  79.     {
  80.         $this->picture $picture;
  81.         return $this;
  82.     }
  83.     public function getFile(): ?string
  84.     {
  85.         return $this->file;
  86.     }
  87.     public function setFile(?string $file): self
  88.     {
  89.         $this->file $file;
  90.         return $this;
  91.     }
  92.     public function getInstrument(): ?Instrument
  93.     {
  94.         return $this->instrument;
  95.     }
  96.     public function setInstrument(?Instrument $instrument): self
  97.     {
  98.         $this->instrument $instrument;
  99.         return $this;
  100.     }
  101.     public function getArtist(): ?Artist
  102.     {
  103.         return $this->artist;
  104.     }
  105.     public function setArtist(?Artist $artist): self
  106.     {
  107.         $this->artist $artist;
  108.         return $this;
  109.     }
  110.     public function getPlayer(): ?Player
  111.     {
  112.         return $this->player;
  113.     }
  114.     public function setPlayer(?Player $player): self
  115.     {
  116.         $this->player $player;
  117.         return $this;
  118.     }
  119.     public function getUpdatedAt(): ?\DateTimeImmutable
  120.     {
  121.         return $this->updatedAt;
  122.     }
  123.     public function setUpdatedAt(?\DateTimeImmutable $updatedAt): self
  124.     {
  125.         $this->updatedAt $updatedAt;
  126.         return $this;
  127.     }
  128.     /**
  129.      * @return Collection<int, User>
  130.      */
  131.     public function getUsers(): Collection
  132.     {
  133.         return $this->users;
  134.     }
  135.     public function addUser(User $user): self
  136.     {
  137.         if (!$this->users->contains($user)) {
  138.             $this->users->add($user);
  139.             $user->addSoundsBookmarked($this);
  140.         }
  141.         return $this;
  142.     }
  143.     public function removeUser(User $user): self
  144.     {
  145.         if ($this->users->removeElement($user)) {
  146.             $user->removeSoundsBookmarked($this);
  147.         }
  148.         return $this;
  149.     }
  150.     public function getSeekTo(): ?int
  151.     {
  152.         return $this->seekTo;
  153.     }
  154.     public function setSeekTo(?int $seekTo): static
  155.     {
  156.         $this->seekTo $seekTo;
  157.         return $this;
  158.     }
  159. }