src/Entity/Rapper.php line 18

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\RapperRepository;
  4. use Doctrine\Common\Collections\ArrayCollection;
  5. use Doctrine\Common\Collections\Collection;
  6. use Doctrine\DBAL\Types\Types;
  7. use Doctrine\ORM\Mapping as ORM;
  8. use phpDocumentor\Reflection\Types\This;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Symfony\Component\HttpFoundation\File\UploadedFile;
  11. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  12. #[ORM\Entity(repositoryClassRapperRepository::class)]
  13. #[Vich\Uploadable]
  14. class Rapper
  15. {
  16.     #[ORM\Id]
  17.     #[ORM\GeneratedValue]
  18.     #[ORM\Column]
  19.     private ?int $id null;
  20.     #[ORM\Column(length255nullabletrue)]
  21.     private ?string $pseudoname null;
  22.     #[ORM\OneToOne(inversedBy'rapper'cascade: ['persist''remove'])]
  23.     private ?Client $client null;
  24.     #[ORM\OneToMany(mappedBy'challenger'targetEntityBattle::class)]
  25.     private Collection $battles_challenger;
  26.     #[ORM\OneToMany(mappedBy'oponnent'targetEntityBattle::class)]
  27.     private Collection $battles_oponnent;
  28.     #[Vich\UploadableField(mapping'rappers_image'fileNameProperty'avatarName'size'avatarSize')]
  29.     public ?File $avatarFile null;
  30.     #[ORM\Column(nullabletrue)]
  31.     private ?string $avatarName null;
  32.     #[ORM\Column(nullabletrue)]
  33.     private ?int $avatarSize null;
  34.     #[ORM\Column(nullabletrue)]
  35.     private ?\DateTime $updatedAt null;
  36.     #[ORM\Column(nullabletrue)]
  37.     private ?\DateTime $createdAt null;
  38.     #[ORM\Column(length255nullabletrue)]
  39.     private ?string $rapperStyle null;
  40.     #[ORM\Column(typeTypes::TEXTnullabletrue)]
  41.     private ?string $bio null;
  42.     #[ORM\OneToMany(mappedBy'rapper'targetEntitySocialLink::class)]
  43.     private Collection $socialLinks;
  44.     #[ORM\ManyToOne(inversedBy'rappers')]
  45.     private ?Crew $crew null;
  46.     #[ORM\OneToMany(mappedBy'winner'targetEntityBattle::class)]
  47.     private Collection $wonBattles;
  48.     #[ORM\Column]
  49.     private ?int $rank null;
  50.     #[ORM\ManyToMany(targetEntityClient::class, inversedBy'rappersFollowed')]
  51.     private Collection $followers;
  52.     public function __toArray(): array
  53.     {
  54.         return [
  55.             "id"=>$this->getId(),
  56.             "pseudoname"=>$this->getPseudoname(),
  57.             "crew"=>$this->getCrew(),
  58.             "rank"=>$this->getRank(),
  59.             "avatarName"=>$this->getAvatarName(),
  60.             "avatarSize"=>$this->getAvatarSize(),
  61.             "createdAt"=>$this->getCreatedAt(),
  62.             "updatedAt"=>$this->getUpdatedAt(),
  63.             "followers"=>$this->getFollowers(),
  64.         ];
  65.     }
  66.     public function __toString()
  67.     {
  68.         return (string)$this->getPseudoname();
  69.     }
  70.     public function __construct()
  71.     {
  72.         $this->battles_challenger = new ArrayCollection();
  73.         $this->battles_oponnent = new ArrayCollection();
  74.         $this->socialLinks = new ArrayCollection();
  75.         $this->wonBattles = new ArrayCollection();
  76.         $this->followers = new ArrayCollection();
  77.     }
  78.     public function getId(): ?int
  79.     {
  80.         return $this->id;
  81.     }
  82.     public function getClient(): ?Client
  83.     {
  84.         return $this->client;
  85.     }
  86.     public function setClient(?Client $client): static
  87.     {
  88.         $this->client $client;
  89.         return $this;
  90.     }
  91.     /**
  92.      * @return Collection<int, Battle>
  93.      */
  94.     public function getBattlesChallenger(): Collection
  95.     {
  96.         return $this->battles_challenger;
  97.     }
  98.     public function addBattlesChallenger(Battle $battlesChallenger): static
  99.     {
  100.         if (!$this->battles_challenger->contains($battlesChallenger)) {
  101.             $this->battles_challenger->add($battlesChallenger);
  102.             $battlesChallenger->setChallenger($this);
  103.         }
  104.         return $this;
  105.     }
  106.     public function removeBattlesChallenger(Battle $battlesChallenger): static
  107.     {
  108.         if ($this->battles_challenger->removeElement($battlesChallenger)) {
  109.             // set the owning side to null (unless already changed)
  110.             if ($battlesChallenger->getChallenger() === $this) {
  111.                 $battlesChallenger->setChallenger(null);
  112.             }
  113.         }
  114.         return $this;
  115.     }
  116.     /**
  117.      * @return Collection<int, Battle>
  118.      */
  119.     public function getBattlesOponnent(): Collection
  120.     {
  121.         return $this->battles_oponnent;
  122.     }
  123.     public function addBattlesOponnent(Battle $battlesOponnent): static
  124.     {
  125.         if (!$this->battles_oponnent->contains($battlesOponnent)) {
  126.             $this->battles_oponnent->add($battlesOponnent);
  127.             $battlesOponnent->setOponnent($this);
  128.         }
  129.         return $this;
  130.     }
  131.     public function removeBattlesOponnent(Battle $battlesOponnent): static
  132.     {
  133.         if ($this->battles_oponnent->removeElement($battlesOponnent)) {
  134.             // set the owning side to null (unless already changed)
  135.             if ($battlesOponnent->getOponnent() === $this) {
  136.                 $battlesOponnent->setOponnent(null);
  137.             }
  138.         }
  139.         return $this;
  140.     }
  141.     public function getPseudoname(): ?string
  142.     {
  143.         return $this->pseudoname;
  144.     }
  145.     public function setPseudoname(?string $pseudoname): static
  146.     {
  147.         $this->pseudoname $pseudoname;
  148.         return $this;
  149.     }
  150.     public function setAvatarFile(?File $avatarFile null): void
  151.     {
  152.         $this->avatarFile $avatarFile;
  153.         if ($this->avatarFile instanceof UploadedFile) {
  154.             $this->updatedAt = new \DateTime('now');
  155.         }
  156.     }
  157.     public function getAvatarFile(): ?File
  158.     {
  159.         return $this->avatarFile;
  160.     }
  161.     public function setAvatarName(?string $imageName): void
  162.     {
  163.         $this->avatarName $imageName;
  164.     }
  165.     public function getAvatarName(): ?string
  166.     {
  167.         return $this->avatarName;
  168.     }
  169.     public function setAvatarSize(?int $imageSize): void
  170.     {
  171.         $this->avatarSize $imageSize;
  172.     }
  173.     public function getAvatarSize(): ?int
  174.     {
  175.         return $this->avatarSize;
  176.     }
  177.     public function getUpdatedAt(): ?\DateTime
  178.     {
  179.         return $this->updatedAt;
  180.     }
  181.     public function setUpdatedAt(?\DateTime $updatedAt): static
  182.     {
  183.         $this->updatedAt $updatedAt;
  184.         return $this;
  185.     }
  186.     public function getCreatedAt(): ?\DateTime
  187.     {
  188.         return $this->createdAt;
  189.     }
  190.     public function setCreatedAt(\DateTime $createdAt): static
  191.     {
  192.         $this->createdAt $createdAt;
  193.         return $this;
  194.     }
  195.     public function getRapperStyle(): ?string
  196.     {
  197.         return $this->rapperStyle;
  198.     }
  199.     public function setRapperStyle(?string $rapperStyle): static
  200.     {
  201.         $this->rapperStyle $rapperStyle;
  202.         return $this;
  203.     }
  204.     public function getBio(): ?string
  205.     {
  206.         return $this->bio;
  207.     }
  208.     public function setBio(?string $bio): static
  209.     {
  210.         $this->bio $bio;
  211.         return $this;
  212.     }
  213.     /**
  214.      * @return Collection<int, SocialLink>
  215.      */
  216.     public function getSocialLinks(): Collection
  217.     {
  218.         return $this->socialLinks;
  219.     }
  220.     public function addSocialLink(SocialLink $socialLink): static
  221.     {
  222.         if (!$this->socialLinks->contains($socialLink)) {
  223.             $this->socialLinks->add($socialLink);
  224.             $socialLink->setRapper($this);
  225.         }
  226.         return $this;
  227.     }
  228.     public function removeSocialLink(SocialLink $socialLink): static
  229.     {
  230.         if ($this->socialLinks->removeElement($socialLink)) {
  231.             // set the owning side to null (unless already changed)
  232.             if ($socialLink->getRapper() === $this) {
  233.                 $socialLink->setRapper(null);
  234.             }
  235.         }
  236.         return $this;
  237.     }
  238.     public function getCrew(): ?Crew
  239.     {
  240.         return $this->crew;
  241.     }
  242.     public function setCrew(?Crew $crew): static
  243.     {
  244.         $this->crew $crew;
  245.         return $this;
  246.     }
  247.     /**
  248.      * @return Collection<int, Battle>
  249.      */
  250.     public function getWonBattles(): Collection
  251.     {
  252.         return $this->wonBattles;
  253.     }
  254.     public function addWonBattle(Battle $wonBattle): static
  255.     {
  256.         if (!$this->wonBattles->contains($wonBattle)) {
  257.             $this->wonBattles->add($wonBattle);
  258.             $wonBattle->setWinner($this);
  259.         }
  260.         return $this;
  261.     }
  262.     public function removeWonBattle(Battle $wonBattle): static
  263.     {
  264.         if ($this->wonBattles->removeElement($wonBattle)) {
  265.             // set the owning side to null (unless already changed)
  266.             if ($wonBattle->getWinner() === $this) {
  267.                 $wonBattle->setWinner(null);
  268.             }
  269.         }
  270.         return $this;
  271.     }
  272.     public function getRank(): ?int
  273.     {
  274.         return $this->rank;
  275.     }
  276.     public function setRank(?int $rank): static
  277.     {
  278.         $this->rank $rank;
  279.         return $this;
  280.     }
  281.     /**
  282.      * @return Collection<int, Client>
  283.      */
  284.     public function getFollowers(): Collection
  285.     {
  286.         return $this->followers;
  287.     }
  288.     public function addFollower(Client $follower): static
  289.     {
  290.         if (!$this->followers->contains($follower)) {
  291.             $this->followers->add($follower);
  292.         }
  293.         return $this;
  294.     }
  295.     public function removeFollower(Client $follower): static
  296.     {
  297.         $this->followers->removeElement($follower);
  298.         return $this;
  299.     }
  300. }