src/Entity/Player.php line 16

Open in your IDE?
  1. <?php
  2. namespace App\Entity;
  3. use DateTime;
  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 Vich\UploaderBundle\Mapping\Annotation as Vich;
  9. /**
  10.  * @ORM\Entity(repositoryClass="App\Repository\PlayerRepository")
  11.  * @Vich\Uploadable
  12.  */
  13. class Player
  14. {
  15.   /**
  16.    * @ORM\Id()
  17.    * @ORM\GeneratedValue()
  18.    * @ORM\Column(type="integer")
  19.    */
  20.   private $id;
  21.   /**
  22.    * @ORM\Column(type="string", length=255)
  23.    */
  24.   private $name;
  25.   /**
  26.    * @ORM\Column(type="string", length=255)
  27.    */
  28.   private $lastname;
  29.   /**
  30.    * @ORM\ManyToOne(targetEntity="App\Entity\Position", inversedBy="players")
  31.    */
  32.   private $position;
  33.   /**
  34.    * @ORM\Column(type="integer", nullable=true)
  35.    */
  36.   private $age;
  37.   /**
  38.    * @ORM\Column(type="decimal", precision=5, scale=2, nullable=true)
  39.    */
  40.   private $weight;
  41.   /**
  42.    * @ORM\Column(type="decimal", precision=5, scale=2, nullable=true)
  43.    */
  44.   private $height;
  45.   /**
  46.    * @ORM\Column(type="decimal", precision=5, scale=2, nullable=true)
  47.    */
  48.   private $shoes;
  49.   /**
  50.    * @ORM\Column(type="string", length=255, nullable=true)
  51.    */
  52.   private $image;
  53.   /**
  54.    * @Vich\UploadableField(mapping="player_images", fileNameProperty="image")
  55.    * @var File
  56.    */
  57.   private $imageFile;
  58.   /**
  59.    * @ORM\Column(type="datetime", nullable=true)
  60.    * @var \DateTime
  61.    */
  62.   private $updatedAt;
  63.   
  64.   /**
  65.    * @ORM\Column(type="integer", nullable=false)
  66.    */
  67.   private $skillfulLeg;
  68.   
  69.   /**
  70.    * @ORM\OneToMany(targetEntity="App\Entity\SeasonPlayer", mappedBy="player", orphanRemoval=true)
  71.    */
  72.   private $seasonPlayers;
  73.   
  74.   /**
  75.    * @ORM\ManyToMany(targetEntity="App\Entity\Convocatoria", mappedBy="players")
  76.    */
  77.   private $convocatorias;
  78.   
  79.   /**
  80.    * @ORM\ManyToMany(targetEntity="App\Entity\TrainingAsist", mappedBy="players")
  81.    */
  82.   private $trainingAsists;
  83.   
  84.   /**
  85.    * @ORM\ManyToOne(targetEntity="App\Entity\Position")
  86.    */
  87.   private $secondary_position;
  88.   
  89.   /**
  90.    * @ORM\Column(type="boolean")
  91.    */
  92.   private $isActive true;
  93.   
  94.   /**
  95.    * @ORM\OneToMany(targetEntity=PlayerJustification::class, mappedBy="player", orphanRemoval=true)
  96.    */
  97.   private $justification;
  98.   
  99.   /**
  100.    * @ORM\Column(type="date",nullable=true)
  101.    */
  102.   private $birth_date;
  103.   
  104.   /**
  105.    * @ORM\ManyToOne(targetEntity="App\Entity\Country", inversedBy="player")
  106.    */
  107.   private $country;
  108.   
  109.   /**
  110.    * @ORM\Column(type="string", length=255, nullable=true)
  111.    */
  112.   private $phone;
  113.   
  114.   /**
  115.    * @ORM\Column(type="string", length=255,nullable=true)
  116.    */
  117.   private $email;
  118.   
  119.   /**
  120.    * @ORM\Column(type="string", length=255,nullable=true)
  121.    */
  122.   private $numberDocument;
  123.   
  124.   /**
  125.    * @ORM\Column(type="string", length=255,nullable=true)
  126.    */
  127.   private $healthCard;
  128.   
  129.   /**
  130.    * @ORM\Column(type="datetime", length=255,nullable=true)
  131.    * @var \DateTime
  132.    */
  133.   private $dateOfBirth;
  134.   
  135.   /**
  136.    * @ORM\Column(type="datetime", length=255,nullable=true)
  137.    * @var \DateTime
  138.    */
  139.   private $medicalReviewDate;
  140.   
  141.   /**
  142.    * @ORM\Column(type="string", length=255,nullable=true)
  143.    */
  144.   private $lastClub;
  145.   /**
  146.    * @ORM\Column(type="datetime", nullable=true)
  147.    * @var \DateTime
  148.    */
  149.   private $deletedAt;
  150.   public function __construct()
  151.   {
  152.     $this->seasonPlayers = new ArrayCollection();
  153.     $this->convocatorias = new ArrayCollection();
  154.     $this->trainingAsists = new ArrayCollection();
  155.     $this->justification = new ArrayCollection();
  156.   }
  157.   public function getId(): ?int
  158.   {
  159.     return $this->id;
  160.   }
  161.   public function getName(): ?string
  162.   {
  163.     return $this->name;
  164.   }
  165.   public function setName($name): self
  166.   {
  167.     $this->name $name;
  168.     return $this;
  169.   }
  170.   public function getLastname(): ?string
  171.   {
  172.     return $this->lastname;
  173.   }
  174.   public function setLastname($lastname): self
  175.   {
  176.     $this->lastname $lastname;
  177.     return $this;
  178.   }
  179.   public function getPosition(): ?Position
  180.   {
  181.     return $this->position;
  182.   }
  183.   public function setPosition(?Position $position): self
  184.   {
  185.     $this->position $position;
  186.     return $this;
  187.   }
  188.   public function getAge(): ?int
  189.   {
  190.     return $this->age;
  191.   }
  192.   public function setAge($age): self
  193.   {
  194.     $this->age $age;
  195.     return $this;
  196.   }
  197.   public function getWeight(): ?string
  198.   {
  199.     return $this->weight;
  200.   }
  201.   public function setWeight($weight): self
  202.   {
  203.     $this->weight $weight;
  204.     return $this;
  205.   }
  206.   public function getHeight(): ?string
  207.   {
  208.     return $this->height;
  209.   }
  210.   public function setHeight($height): self
  211.   {
  212.     $this->height $height;
  213.     return $this;
  214.   }
  215.   public function getShoes(): ?string
  216.   {
  217.     return $this->shoes;
  218.   }
  219.   public function setShoes($shoes): self
  220.   {
  221.     $this->shoes $shoes;
  222.     return $this;
  223.   }
  224.   public function getCountry(): ?Country
  225.   {
  226.     return $this->country;
  227.   }
  228.   public function setCountry(?Country $country): self
  229.   {
  230.     $this->country $country;
  231.     return $this;
  232.   }
  233.   /**
  234.    * @return \DateTime
  235.    */
  236.   public function getUpdatedAt(): \DateTime
  237.   {
  238.     return $this->updatedAt;
  239.   }
  240.   /**
  241.    * @param \DateTime $updatedAt
  242.    * @return Player
  243.    */
  244.   public function setUpdatedAt(\DateTime $updatedAt): Player
  245.   {
  246.     $this->updatedAt $updatedAt;
  247.     return $this;
  248.   }
  249.   /**
  250.    * @return mixed
  251.    */
  252.   public function getSkillfulLeg()
  253.   {
  254.     return $this->skillfulLeg;
  255.   }
  256.   /**
  257.    * @param mixed $skillfulLeg
  258.    */
  259.   public function setSkillfulLeg($skillfulLeg): void
  260.   {
  261.     $this->skillfulLeg $skillfulLeg;
  262.   }
  263.   /**
  264.    * @param File|null $image
  265.    * @return Player
  266.    */
  267.   public function setImageFile(File $image null)
  268.   {
  269.     $this->imageFile $image;
  270.     // VERY IMPORTANT:
  271.     // It is required that at least one field changes if you are using Doctrine,
  272.     // otherwise the event listeners won't be called and the file is lost
  273.     if ($image) {
  274.       // if 'updatedAt' is not defined in your entity, use another property
  275.       $this->updatedAt = new \DateTime('now');
  276.     }
  277.     return $this;
  278.   }
  279.   public function getImageFile()
  280.   {
  281.     return $this->imageFile;
  282.   }
  283.   public function getImage(): ?string
  284.   {
  285.     return $this->image;
  286.   }
  287.   public function setImage(?string $image): self
  288.   {
  289.     $this->image $image;
  290.     return $this;
  291.   }
  292.   /**
  293.    * @return Collection|SeasonPlayer[]
  294.    */
  295.   public function getSeasonPlayers(): Collection
  296.   {
  297.     return $this->seasonPlayers;
  298.   }
  299.   public function addSeasonPlayer(SeasonPlayer $seasonPlayer): self
  300.   {
  301.     if (!$this->seasonPlayers->contains($seasonPlayer)) {
  302.       $this->seasonPlayers[] = $seasonPlayer;
  303.       $seasonPlayer->setPlayer($this);
  304.     }
  305.     return $this;
  306.   }
  307.   public function removeSeasonPlayer(SeasonPlayer $seasonPlayer): self
  308.   {
  309.     if ($this->seasonPlayers->contains($seasonPlayer)) {
  310.       $this->seasonPlayers->removeElement($seasonPlayer);
  311.       // set the owning side to null (unless already changed)
  312.       if ($seasonPlayer->getPlayer() === $this) {
  313.         $seasonPlayer->setPlayer(null);
  314.       }
  315.     }
  316.     return $this;
  317.   }
  318.   /**
  319.    * @return Collection|Convocatoria[]
  320.    */
  321.   public function getConvocatorias(): Collection
  322.   {
  323.     return $this->convocatorias;
  324.   }
  325.   public function addConvocatoria(Convocatoria $convocatoria): self
  326.   {
  327.     if (!$this->convocatorias->contains($convocatoria)) {
  328.       $this->convocatorias[] = $convocatoria;
  329.       $convocatoria->addPlayer($this);
  330.     }
  331.     return $this;
  332.   }
  333.   public function removeConvocatoria(Convocatoria $convocatoria): self
  334.   {
  335.     if ($this->convocatorias->contains($convocatoria)) {
  336.       $this->convocatorias->removeElement($convocatoria);
  337.       $convocatoria->removePlayer($this);
  338.     }
  339.     return $this;
  340.   }
  341.   /**
  342.    * @return Collection|TrainingAsist[]
  343.    */
  344.   public function getTrainingAsists(): Collection
  345.   {
  346.     return $this->trainingAsists;
  347.   }
  348.   public function addTrainingAsist(TrainingAsist $trainingAsist): self
  349.   {
  350.     if (!$this->trainingAsists->contains($trainingAsist)) {
  351.       $this->trainingAsists[] = $trainingAsist;
  352.       $trainingAsist->addPlayer($this);
  353.     }
  354.     return $this;
  355.   }
  356.   public function removeTrainingAsist(TrainingAsist $trainingAsist): self
  357.   {
  358.     if ($this->trainingAsists->contains($trainingAsist)) {
  359.       $this->trainingAsists->removeElement($trainingAsist);
  360.       $trainingAsist->removePlayer($this);
  361.     }
  362.     return $this;
  363.   }
  364.   public function __toArray($imagePath)
  365.   {
  366.     return [
  367.       "id" => $this->getId(),
  368.       "name" => $this->getName(),
  369.       "lastname" => $this->getLastname(),
  370.       "positionSlug" => !empty($this->getPosition()) ? $this->getPosition()->getSlug() : "",
  371.       "position" => !empty($this->getPosition()) ? $this->getPosition()->getSlugTranslation() : "",
  372.       "positionKey" => !empty($this->getPosition()) ? $this->getPosition()->getFieldPosition() : null,
  373.       "positionSecondary" => !empty($this->getSecondaryPosition()) ? $this->getSecondaryPosition()->getSlugTranslation() : "",
  374.       "positionSecondarySlug" => !empty($this->getSecondaryPosition()) ? $this->getSecondaryPosition()->getSlug() : "",
  375.       "positionSecondaryKey" => !empty($this->getSecondaryPosition()) ? $this->getSecondaryPosition()->getFieldPosition() : null,
  376.       "age" => $this->getAge(),
  377.       "weight" => $this->getWeight(),
  378.       "height" => $this->getHeight(),
  379.       "shoes" => round($this->getShoes()),
  380.       "image" => !empty($this->getImage()) ? $imagePath $this->getImage() : "",
  381.       "skillfulLeg" => $this->getSkillfulLeg(),
  382.       "birthDate" => !empty($this->getBirthDate()) ? $this->getBirthDate()->format('Y-m-d') : null,
  383.       "phone" => $this->getPhone(),
  384.       "email" => $this->getEmail(),
  385.       "numberDocument" => $this->getNumberDocument(),
  386.       "healthCard" => $this->getHealthCard(),
  387.       "dateOfBirth" => $this->getDateOfBirth() ?  $this->getDateOfBirth()->format('Y-m-d'): null,
  388.       "medicalReviewDate" => $this->getMedicalReviewDate() ?  $this->getMedicalReviewDate()->format('Y-m-d'): null,
  389.       "lastClub" => $this->getLastClub()
  390.     ];
  391.   }
  392.   public function getSecondaryPosition(): ?Position
  393.   {
  394.     return $this->secondary_position;
  395.   }
  396.   public function setSecondaryPosition(?Position $secondary_position): self
  397.   {
  398.     $this->secondary_position $secondary_position;
  399.     return $this;
  400.   }
  401.   public function getIsActive(): ?bool
  402.   {
  403.     return $this->isActive;
  404.   }
  405.   public function setIsActive(bool $isActive): self
  406.   {
  407.     $this->isActive $isActive;
  408.     return $this;
  409.   }
  410.   /**
  411.    * @return Collection|PlayerJustification[]
  412.    */
  413.   public function getJustification(): Collection
  414.   {
  415.     return $this->justification;
  416.   }
  417.   public function addJustification(PlayerJustification $justification): self
  418.   {
  419.     if (!$this->justification->contains($justification)) {
  420.       $this->justification[] = $justification;
  421.       $justification->setPlayer($this);
  422.     }
  423.     return $this;
  424.   }
  425.   public function removeJustification(PlayerJustification $justification): self
  426.   {
  427.     if ($this->justification->contains($justification)) {
  428.       $this->justification->removeElement($justification);
  429.       // set the owning side to null (unless already changed)
  430.       if ($justification->getPlayer() === $this) {
  431.         $justification->setPlayer(null);
  432.       }
  433.     }
  434.     return $this;
  435.   }
  436.   public function getBirthDate(): ?\DateTimeInterface
  437.   {
  438.     return $this->birth_date;
  439.   }
  440.   public function setBirthDate(\DateTimeInterface $birth_date): self
  441.   {
  442.     $this->birth_date $birth_date;
  443.     return $this;
  444.   }
  445.   public function getPhone(): ?string
  446.   {
  447.     return $this->phone;
  448.   }
  449.   public function setPhone(?string $phone): self
  450.   {
  451.     $this->phone $phone;
  452.     return $this;
  453.   }
  454.   public function getNumberDocument(): ?string
  455.   {
  456.     return $this->numberDocument;
  457.   }
  458.   public function setNumberDocument(?string $numberDocument): self
  459.   {
  460.     $this->numberDocument $numberDocument;
  461.     return $this;
  462.   }
  463.   public function getHealthCard(): ?string
  464.   {
  465.     return $this->healthCard;
  466.   }
  467.   public function setHealthCard(?string $healtCard): self
  468.   {
  469.     $this->healthCard $healtCard;
  470.     return $this;
  471.   }
  472.   public function setEmail(?string $email): self
  473.   {
  474.     $this->email $email;
  475.     return $this;
  476.   }
  477.   public function getEmail(): ?string
  478.   {
  479.     return $this->email;
  480.   }
  481.   public function getDateOfBirth(): ?DateTime
  482.   {
  483.     return $this->dateOfBirth;
  484.   }
  485.   public function setDateOfBirth(?DateTime $dateOfBirth): self
  486.   {
  487.     $this->dateOfBirth $dateOfBirth;
  488.     return $this;
  489.   }
  490.   public function getMedicalReviewDate(): ?DateTime
  491.   {
  492.     return $this->medicalReviewDate;
  493.   }
  494.   public function setMedicalReviewDate(?DateTime  $medicalReviewDate): self
  495.   {
  496.     $this->medicalReviewDate $medicalReviewDate;
  497.     return $this;
  498.   }
  499.   public function getLastClub(): ?string
  500.   {
  501.     return $this->lastClub;
  502.   }
  503.   public function setLastClub(?string $lastClub): self
  504.   {
  505.     $this->lastClub $lastClub;
  506.     return $this;
  507.   }
  508.   public function getDeletedAt(): ?\DateTimeInterface
  509.   {
  510.       return $this->deletedAt;
  511.   }
  512.   public function setDeletedAt(?\DateTimeInterface $deletedAt): self
  513.   {
  514.       $this->deletedAt $deletedAt;
  515.       return $this;
  516.   }
  517. }