src/Entity/Battle.php line 15

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use App\Repository\BattleRepository;
  4. use DateTime;
  5. use Doctrine\Common\Collections\ArrayCollection;
  6. use Doctrine\Common\Collections\Collection;
  7. use Doctrine\DBAL\Types\Types;
  8. use Doctrine\ORM\Mapping as ORM;
  9. use Symfony\Component\HttpFoundation\File\File;
  10. use Vich\UploaderBundle\Mapping\Annotation as Vich;
  11. #[ORM\Entity(repositoryClassBattleRepository::class)]
  12. #[Vich\Uploadable]
  13. class Battle
  14. {
  15.     #[ORM\Id]
  16.     #[ORM\GeneratedValue]
  17.     #[ORM\Column]
  18.     private ?int $id null;
  19.     #[ORM\Column(typeTypes::DATETIME_MUTABLEnullabletrue)]
  20.     private ?\DateTimeInterface $battle_ends null;
  21.     #[Vich\UploadableField(mapping'battles'fileNameProperty'battleFileName'size'battleSize')]
  22.     public ?File $battleFile null;
  23.     #[ORM\Column(nullabletrue)]
  24.     private ?string $battleFileName null;
  25.     #[ORM\Column(nullabletrue)]
  26.     private ?int $battleSize null;
  27.     #[ORM\Column(nullabletrue)]
  28.     private ?\DateTime $updatedAt null;
  29.     #[ORM\ManyToOne(inversedBy'battles_challenger')]
  30.     private ?Rapper $challenger null;
  31.     #[ORM\ManyToOne(inversedBy'battles_oponnent')]
  32.     private ?Rapper $oponnent null;
  33.     #[ORM\Column(nullabletrue)]
  34.     private ?\DateTime $createdAt null;
  35.     #[ORM\ManyToOne(inversedBy'battles')]
  36.     private ?Beat $beat null;
  37.     #[ORM\Column]
  38.     private ?bool $isConfirmed null;
  39.     #[ORM\Column]
  40.     private ?bool $isCompleted null;
  41.     #[ORM\Column]
  42.     private ?bool $isCanceled null;
  43.     private ?bool $finished null;
  44.     #[ORM\OneToMany(mappedBy'battle'targetEntityVote::class)]
  45.     private Collection $allVotes;
  46.     #[ORM\ManyToOne(inversedBy'wonBattles')]
  47.     private ?Rapper $winner null;
  48.     #[ORM\OneToMany(mappedBy'battle'targetEntityBattleComment::class)]
  49.     private Collection $comments;
  50.     #[ORM\ManyToMany(targetEntityClient::class, mappedBy'favoriteBattles')]
  51.     private Collection $favoritedClients;
  52.     #[ORM\OneToOne(mappedBy'battle'cascade: ['persist''remove'])]
  53.     private ?BattleInvite $battleInvite null;
  54.     #[ORM\Column(nullabletrue)]
  55.     private ?int $views null;
  56.     public function __construct()
  57.     {
  58.         $this->allVotes = new ArrayCollection();
  59.         $this->comments = new ArrayCollection();
  60.         $this->favoritedClients = new ArrayCollection();
  61.     }
  62.     public function __toString()
  63.     {
  64.         return (string)$this->getChallenger()->getPseudoname()." vs. ".$this->getOponnent()->getPseudoname();
  65.     }
  66.     public function getId(): ?int
  67.     {
  68.         return $this->id;
  69.     }
  70.     public function getBattleEnds(): ?\DateTimeInterface
  71.     {
  72.         return $this->battle_ends;
  73.     }
  74.     public function setBattleEnds(?\DateTimeInterface $battle_ends): static
  75.     {
  76.         $this->battle_ends $battle_ends;
  77.         return $this;
  78.     }
  79.     public function setBattleFile(?File $battleFile null): void
  80.     {
  81.         $this->battleFile $battleFile;
  82.         if (null !== $battleFile) {
  83.             // It is required that at least one field changes if you are using doctrine
  84.             // otherwise the event listeners won't be called and the file is lost
  85.             $this->updatedAt = new \DateTime();
  86.         }
  87.     }
  88.     public function getBattleFile(): ?File
  89.     {
  90.         return $this->battleFile;
  91.     }
  92.     public function setBattleFileName(?string $battleFileName): void
  93.     {
  94.         $this->battleFileName $battleFileName;
  95.     }
  96.     public function getBattleFileName(): ?string
  97.     {
  98.         return $this->battleFileName;
  99.     }
  100.     public function setBattleSize(?int $battleSize): void
  101.     {
  102.         $this->battleSize $battleSize;
  103.     }
  104.     public function getBattleSize(): ?int
  105.     {
  106.         return $this->battleSize;
  107.     }
  108.     public function getUpdatedAt(): ?\DateTime
  109.     {
  110.         return $this->updatedAt;
  111.     }
  112.     public function setUpdatedAt(?\DateTime $updatedAt): static
  113.     {
  114.         $this->updatedAt $updatedAt;
  115.         return $this;
  116.     }
  117.     public function getChallenger(): ?Rapper
  118.     {
  119.         return $this->challenger;
  120.     }
  121.     public function setChallenger(?Rapper $challenger): static
  122.     {
  123.         $this->challenger $challenger;
  124.         return $this;
  125.     }
  126.     public function getOponnent(): ?Rapper
  127.     {
  128.         return $this->oponnent;
  129.     }
  130.     public function getOpponent(): ?Rapper
  131.     {
  132.         return $this->oponnent;
  133.     }
  134.     public function setOponnent(?Rapper $oponnent): static
  135.     {
  136.         $this->oponnent $oponnent;
  137.         return $this;
  138.     }
  139.     public function getCreatedAt(): ?\DateTime
  140.     {
  141.         return $this->createdAt;
  142.     }
  143.     public function setCreatedAt(?\DateTime $createdAt): static
  144.     {
  145.         $this->createdAt $createdAt;
  146.         return $this;
  147.     }
  148.     public function getBeat(): ?Beat
  149.     {
  150.         return $this->beat;
  151.     }
  152.     public function setBeat(?Beat $beat): static
  153.     {
  154.         $this->beat $beat;
  155.         return $this;
  156.     }
  157.     public function isIsConfirmed(): ?bool
  158.     {
  159.         return $this->isConfirmed;
  160.     }
  161.     public function setIsConfirmed(bool $isConfirmed): static
  162.     {
  163.         $this->isConfirmed $isConfirmed;
  164.         return $this;
  165.     }
  166.     public function isIsCompleted(): ?bool
  167.     {
  168.         return $this->isCompleted;
  169.     }
  170.     public function setIsCompleted(bool $isCompleted): static
  171.     {
  172.         $this->isCompleted $isCompleted;
  173.         return $this;
  174.     }
  175.     public function isIsCanceled(): ?bool
  176.     {
  177.         return $this->isCanceled;
  178.     }
  179.     public function setIsCanceled(bool $isCanceled): static
  180.     {
  181.         $this->isCanceled $isCanceled;
  182.         return $this;
  183.     }
  184.     /**
  185.      * @return Collection<int, Vote>
  186.      */
  187.     public function getAllVotes(): Collection
  188.     {
  189.         return $this->allVotes;
  190.     }
  191.     public function addAllVote(Vote $allVote): static
  192.     {
  193.         if (!$this->allVotes->contains($allVote)) {
  194.             $this->allVotes->add($allVote);
  195.             $allVote->setBattle($this);
  196.         }
  197.         return $this;
  198.     }
  199.     public function removeAllVote(Vote $allVote): static
  200.     {
  201.         if ($this->allVotes->removeElement($allVote)) {
  202.             // set the owning side to null (unless already changed)
  203.             if ($allVote->getBattle() === $this) {
  204.                 $allVote->setBattle(null);
  205.             }
  206.         }
  207.         return $this;
  208.     }
  209.     public function getWinner(): ?Rapper
  210.     {
  211.         return $this->winner;
  212.     }
  213.     public function setWinner(?Rapper $winner): static
  214.     {
  215.         $this->winner $winner;
  216.         return $this;
  217.     }
  218.     /**
  219.      * @return Collection<int, BattleComment>
  220.      */
  221.     public function getComments(): Collection
  222.     {
  223.         return $this->comments;
  224.     }
  225.     public function addComment(BattleComment $comment): static
  226.     {
  227.         if (!$this->comments->contains($comment)) {
  228.             $this->comments->add($comment);
  229.             $comment->setBattle($this);
  230.         }
  231.         return $this;
  232.     }
  233.     public function removeComment(BattleComment $comment): static
  234.     {
  235.         if ($this->comments->removeElement($comment)) {
  236.             // set the owning side to null (unless already changed)
  237.             if ($comment->getBattle() === $this) {
  238.                 $comment->setBattle(null);
  239.             }
  240.         }
  241.         return $this;
  242.     }
  243.     /**
  244.      * @return Collection<int, Client>
  245.      */
  246.     public function getFavoritedClients(): Collection
  247.     {
  248.         return $this->favoritedClients;
  249.     }
  250.     public function addFavoritedClient(Client $favoritedClient): static
  251.     {
  252.         if (!$this->favoritedClients->contains($favoritedClient)) {
  253.             $this->favoritedClients->add($favoritedClient);
  254.             $favoritedClient->addFavoriteBattle($this);
  255.         }
  256.         return $this;
  257.     }
  258.     public function removeFavoritedClient(Client $favoritedClient): static
  259.     {
  260.         if ($this->favoritedClients->removeElement($favoritedClient)) {
  261.             $favoritedClient->removeFavoriteBattle($this);
  262.         }
  263.         return $this;
  264.     }
  265.     public function getBattleInvite(): ?BattleInvite
  266.     {
  267.         return $this->battleInvite;
  268.     }
  269.     public function setBattleInvite(?BattleInvite $battleInvite): static
  270.     {
  271.         // unset the owning side of the relation if necessary
  272.         if ($battleInvite === null && $this->battleInvite !== null) {
  273.             $this->battleInvite->setBattle(null);
  274.         }
  275.         // set the owning side of the relation if necessary
  276.         if ($battleInvite !== null && $battleInvite->getBattle() !== $this) {
  277.             $battleInvite->setBattle($this);
  278.         }
  279.         $this->battleInvite $battleInvite;
  280.         return $this;
  281.     }
  282.     public function isFinished(?bool $_isFinished false):bool
  283.     {
  284.         $this->finished false;
  285.         if($_isFinished){
  286.             return $this->finished $_isFinished;
  287.         }
  288.         if($this->battle_ends < new DateTime("now")){
  289.             $this->finished true;
  290.         }
  291.         return $this->finished;
  292.     }
  293.     public function getViews(): ?int
  294.     {
  295.         return $this->views;
  296.     }
  297.     public function setViews(?int $views): static
  298.     {
  299.         $this->views $views;
  300.         return $this;
  301.     }
  302. }