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.     public function __construct()
  55.     {
  56.         $this->allVotes = new ArrayCollection();
  57.         $this->comments = new ArrayCollection();
  58.         $this->favoritedClients = new ArrayCollection();
  59.     }
  60.     public function __toString()
  61.     {
  62.         return (string)$this->getChallenger()->getPseudoname()." vs. ".$this->getOponnent()->getPseudoname();
  63.     }
  64.     public function getId(): ?int
  65.     {
  66.         return $this->id;
  67.     }
  68.     public function getBattleEnds(): ?\DateTimeInterface
  69.     {
  70.         return $this->battle_ends;
  71.     }
  72.     public function setBattleEnds(?\DateTimeInterface $battle_ends): static
  73.     {
  74.         $this->battle_ends $battle_ends;
  75.         return $this;
  76.     }
  77.     public function setBattleFile(?File $battleFile null): void
  78.     {
  79.         $this->battleFile $battleFile;
  80.         if (null !== $battleFile) {
  81.             // It is required that at least one field changes if you are using doctrine
  82.             // otherwise the event listeners won't be called and the file is lost
  83.             $this->updatedAt = new \DateTime();
  84.         }
  85.     }
  86.     public function getBattleFile(): ?File
  87.     {
  88.         return $this->battleFile;
  89.     }
  90.     public function setBattleFileName(?string $battleFileName): void
  91.     {
  92.         $this->battleFileName $battleFileName;
  93.     }
  94.     public function getBattleFileName(): ?string
  95.     {
  96.         return $this->battleFileName;
  97.     }
  98.     public function setBattleSize(?int $battleSize): void
  99.     {
  100.         $this->battleSize $battleSize;
  101.     }
  102.     public function getBattleSize(): ?int
  103.     {
  104.         return $this->battleSize;
  105.     }
  106.     public function getUpdatedAt(): ?\DateTime
  107.     {
  108.         return $this->updatedAt;
  109.     }
  110.     public function setUpdatedAt(?\DateTime $updatedAt): static
  111.     {
  112.         $this->updatedAt $updatedAt;
  113.         return $this;
  114.     }
  115.     public function getChallenger(): ?Rapper
  116.     {
  117.         return $this->challenger;
  118.     }
  119.     public function setChallenger(?Rapper $challenger): static
  120.     {
  121.         $this->challenger $challenger;
  122.         return $this;
  123.     }
  124.     public function getOponnent(): ?Rapper
  125.     {
  126.         return $this->oponnent;
  127.     }
  128.     public function getOpponent(): ?Rapper
  129.     {
  130.         return $this->oponnent;
  131.     }
  132.     public function setOponnent(?Rapper $oponnent): static
  133.     {
  134.         $this->oponnent $oponnent;
  135.         return $this;
  136.     }
  137.     public function getCreatedAt(): ?\DateTime
  138.     {
  139.         return $this->createdAt;
  140.     }
  141.     public function setCreatedAt(?\DateTime $createdAt): static
  142.     {
  143.         $this->createdAt $createdAt;
  144.         return $this;
  145.     }
  146.     public function getBeat(): ?Beat
  147.     {
  148.         return $this->beat;
  149.     }
  150.     public function setBeat(?Beat $beat): static
  151.     {
  152.         $this->beat $beat;
  153.         return $this;
  154.     }
  155.     public function isIsConfirmed(): ?bool
  156.     {
  157.         return $this->isConfirmed;
  158.     }
  159.     public function setIsConfirmed(bool $isConfirmed): static
  160.     {
  161.         $this->isConfirmed $isConfirmed;
  162.         return $this;
  163.     }
  164.     public function isIsCompleted(): ?bool
  165.     {
  166.         return $this->isCompleted;
  167.     }
  168.     public function setIsCompleted(bool $isCompleted): static
  169.     {
  170.         $this->isCompleted $isCompleted;
  171.         return $this;
  172.     }
  173.     public function isIsCanceled(): ?bool
  174.     {
  175.         return $this->isCanceled;
  176.     }
  177.     public function setIsCanceled(bool $isCanceled): static
  178.     {
  179.         $this->isCanceled $isCanceled;
  180.         return $this;
  181.     }
  182.     /**
  183.      * @return Collection<int, Vote>
  184.      */
  185.     public function getAllVotes(): Collection
  186.     {
  187.         return $this->allVotes;
  188.     }
  189.     public function addAllVote(Vote $allVote): static
  190.     {
  191.         if (!$this->allVotes->contains($allVote)) {
  192.             $this->allVotes->add($allVote);
  193.             $allVote->setBattle($this);
  194.         }
  195.         return $this;
  196.     }
  197.     public function removeAllVote(Vote $allVote): static
  198.     {
  199.         if ($this->allVotes->removeElement($allVote)) {
  200.             // set the owning side to null (unless already changed)
  201.             if ($allVote->getBattle() === $this) {
  202.                 $allVote->setBattle(null);
  203.             }
  204.         }
  205.         return $this;
  206.     }
  207.     public function getWinner(): ?Rapper
  208.     {
  209.         return $this->winner;
  210.     }
  211.     public function setWinner(?Rapper $winner): static
  212.     {
  213.         $this->winner $winner;
  214.         return $this;
  215.     }
  216.     /**
  217.      * @return Collection<int, BattleComment>
  218.      */
  219.     public function getComments(): Collection
  220.     {
  221.         return $this->comments;
  222.     }
  223.     public function addComment(BattleComment $comment): static
  224.     {
  225.         if (!$this->comments->contains($comment)) {
  226.             $this->comments->add($comment);
  227.             $comment->setBattle($this);
  228.         }
  229.         return $this;
  230.     }
  231.     public function removeComment(BattleComment $comment): static
  232.     {
  233.         if ($this->comments->removeElement($comment)) {
  234.             // set the owning side to null (unless already changed)
  235.             if ($comment->getBattle() === $this) {
  236.                 $comment->setBattle(null);
  237.             }
  238.         }
  239.         return $this;
  240.     }
  241.     /**
  242.      * @return Collection<int, Client>
  243.      */
  244.     public function getFavoritedClients(): Collection
  245.     {
  246.         return $this->favoritedClients;
  247.     }
  248.     public function addFavoritedClient(Client $favoritedClient): static
  249.     {
  250.         if (!$this->favoritedClients->contains($favoritedClient)) {
  251.             $this->favoritedClients->add($favoritedClient);
  252.             $favoritedClient->addFavoriteBattle($this);
  253.         }
  254.         return $this;
  255.     }
  256.     public function removeFavoritedClient(Client $favoritedClient): static
  257.     {
  258.         if ($this->favoritedClients->removeElement($favoritedClient)) {
  259.             $favoritedClient->removeFavoriteBattle($this);
  260.         }
  261.         return $this;
  262.     }
  263.     public function getBattleInvite(): ?BattleInvite
  264.     {
  265.         return $this->battleInvite;
  266.     }
  267.     public function setBattleInvite(?BattleInvite $battleInvite): static
  268.     {
  269.         // unset the owning side of the relation if necessary
  270.         if ($battleInvite === null && $this->battleInvite !== null) {
  271.             $this->battleInvite->setBattle(null);
  272.         }
  273.         // set the owning side of the relation if necessary
  274.         if ($battleInvite !== null && $battleInvite->getBattle() !== $this) {
  275.             $battleInvite->setBattle($this);
  276.         }
  277.         $this->battleInvite $battleInvite;
  278.         return $this;
  279.     }
  280.     public function isFinished(?bool $_isFinished false):bool
  281.     {
  282.         $this->finished false;
  283.         if($_isFinished){
  284.             return $this->finished $_isFinished;
  285.         }
  286.         if($this->battle_ends < new DateTime("now")){
  287.             $this->finished true;
  288.         }
  289.         return $this->finished;
  290.     }
  291. }