src/Entity/BeatAuthor.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\BeatAuthorRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\ORM\Mapping as ORM;
  7. use Symfony\Component\HttpFoundation\File\File;
  8. use Symfony\Component\HttpFoundation\File\UploadedFile;
  9. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  10. #[ORM\Entity(repositoryClassBeatAuthorRepository::class)]
  11. #[Vich\Uploadable]
  12. class BeatAuthor
  13. {
  14.     #[ORM\Id]
  15.     #[ORM\GeneratedValue]
  16.     #[ORM\Column]
  17.     private ?int $id null;
  18.     #[ORM\Column(length255nullabletrue)]
  19.     private ?string $firstname null;
  20.     #[ORM\Column(length255nullabletrue)]
  21.     private ?string $lastname null;
  22.     #[ORM\Column(length255)]
  23.     private ?string $pseudoname null;
  24.     #[ORM\OneToMany(mappedBy'author'targetEntityBeat::class)]
  25.     private Collection $beats;
  26.     #[ORM\OneToOne(mappedBy'author'cascade: ['persist''remove'])]
  27.     private ?Client $client null;
  28.     #[Vich\UploadableField(mapping'beat_author_image'fileNameProperty'imageName'size'imageSize')]
  29.     public ?File $imageFile null;
  30.     #[ORM\Column(nullabletrue)]
  31.     private ?string $imageName null;
  32.     #[ORM\Column(nullabletrue)]
  33.     private ?int $imageSize null;
  34.     #[ORM\Column(nullabletrue)]
  35.     private ?\DateTime $createdAt null;
  36.     #[ORM\Column(nullabletrue)]
  37.     private ?\DateTime $updatedAt null;
  38.     #[ORM\ManyToMany(targetEntityClient::class, inversedBy'followedAuthors')]
  39.     private Collection $followers;
  40.     public function __toArray(): array
  41.     {
  42.         return [
  43.           "id"=>$this->getId(),
  44.           "firstname"=>$this->getFirstname(),
  45.           "lastname"=>$this->getLastname(),
  46.           "pseudoname"=>$this->getPseudoname(),
  47.           "beats"=>$this->getBeats(),
  48.           "client"=>$this->getClient(),
  49.           "imageName"=>$this->getImageName(),
  50.           "imageSize"=>$this->getImageSize(),
  51.           "createdAt"=>$this->getCreatedAt(),
  52.           "updatedAt"=>$this->getUpdatedAt(),
  53.           "followers"=>$this->getFollowers(),
  54.         ];
  55.     }
  56.     public function __toString()
  57.     {
  58.         return (string)$this->getPseudoname();
  59.     }
  60.     public function __construct()
  61.     {
  62.         $this->beats = new ArrayCollection();
  63.         $this->followers = new ArrayCollection();
  64.     }
  65.     public function getId(): ?int
  66.     {
  67.         return $this->id;
  68.     }
  69.     public function getFirstname(): ?string
  70.     {
  71.         return $this->firstname;
  72.     }
  73.     public function setFirstname(?string $firstname): static
  74.     {
  75.         $this->firstname $firstname;
  76.         return $this;
  77.     }
  78.     public function getLastname(): ?string
  79.     {
  80.         return $this->lastname;
  81.     }
  82.     public function setLastname(?string $lastname): static
  83.     {
  84.         $this->lastname $lastname;
  85.         return $this;
  86.     }
  87.     public function getPseudoname(): ?string
  88.     {
  89.         return $this->pseudoname;
  90.     }
  91.     public function setPseudoname(string $pseudoname): static
  92.     {
  93.         $this->pseudoname $pseudoname;
  94.         return $this;
  95.     }
  96.     /**
  97.      * @return Collection<int, Beat>
  98.      */
  99.     public function getBeats(): Collection
  100.     {
  101.         return $this->beats;
  102.     }
  103.     public function addBeat(Beat $beat): static
  104.     {
  105.         if (!$this->beats->contains($beat)) {
  106.             $this->beats->add($beat);
  107.             $beat->setAuthor($this);
  108.         }
  109.         return $this;
  110.     }
  111.     public function removeBeat(Beat $beat): static
  112.     {
  113.         if ($this->beats->removeElement($beat)) {
  114.             // set the owning side to null (unless already changed)
  115.             if ($beat->getAuthor() === $this) {
  116.                 $beat->setAuthor(null);
  117.             }
  118.         }
  119.         return $this;
  120.     }
  121.     public function getClient(): ?Client
  122.     {
  123.         return $this->client;
  124.     }
  125.     public function setClient(?Client $client): static
  126.     {
  127.         // unset the owning side of the relation if necessary
  128.         if ($client === null && $this->client !== null) {
  129.             $this->client->setAuthor(null);
  130.         }
  131.         // set the owning side of the relation if necessary
  132.         if ($client !== null && $client->getAuthor() !== $this) {
  133.             $client->setAuthor($this);
  134.         }
  135.         $this->client $client;
  136.         return $this;
  137.     }
  138.     public function setImageFile(?File $imageFile null): void
  139.     {
  140.         $this->imageFile $imageFile;
  141.         if ($this->imageFile instanceof UploadedFile) {
  142.             $this->updatedAt = new \DateTime('now');
  143.         }
  144.     }
  145.     public function getImageFile(): ?File
  146.     {
  147.         return $this->imageFile;
  148.     }
  149.     public function setImageName(?string $imageName): void
  150.     {
  151.         $this->imageName $imageName;
  152.     }
  153.     public function getImageName(): ?string
  154.     {
  155.         return $this->imageName;
  156.     }
  157.     public function setImageSize(?int $imageSize): void
  158.     {
  159.         $this->imageSize $imageSize;
  160.     }
  161.     public function getImageSize(): ?int
  162.     {
  163.         return $this->imageSize;
  164.     }
  165.     public function getCreatedAt(): ?\DateTime
  166.     {
  167.         return $this->createdAt;
  168.     }
  169.     public function setCreatedAt(?\DateTime $createdAt): static
  170.     {
  171.         $this->createdAt $createdAt;
  172.         return $this;
  173.     }
  174.     public function getUpdatedAt(): ?\DateTime
  175.     {
  176.         return $this->updatedAt;
  177.     }
  178.     public function setUpdatedAt(?\DateTime $updatedAt): static
  179.     {
  180.         $this->updatedAt $updatedAt;
  181.         return $this;
  182.     }
  183.     /**
  184.      * @return Collection<int, Client>
  185.      */
  186.     public function getFollowers(): Collection
  187.     {
  188.         return $this->followers;
  189.     }
  190.     public function addFollower(Client $follower): static
  191.     {
  192.         if (!$this->followers->contains($follower)) {
  193.             $this->followers->add($follower);
  194.         }
  195.         return $this;
  196.     }
  197.     public function removeFollower(Client $follower): static
  198.     {
  199.         $this->followers->removeElement($follower);
  200.         return $this;
  201.     }
  202. }