src/Entity/Gos/UserFiles.php line 13

Open in your IDE?
  1. <?php
  2. namespace App\Entity\Gos;
  3. use App\Entity\Gos\VirtualCurrency\VirtualCurrencyOrder;
  4. use Doctrine\ORM\Mapping as ORM;
  5. use Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntity;
  6. /**
  7.  * @ORM\Entity(repositoryClass="App\Repository\Gos\UserFilesRepository")
  8.  * @ORM\HasLifecycleCallbacks()
  9.  */
  10. class UserFiles
  11. {
  12.     /**
  13.      * @ORM\Id()
  14.      * @ORM\GeneratedValue()
  15.      * @ORM\Column(type="integer")
  16.      */
  17.     private $id;
  18.     /**
  19.      * @ORM\Column(type="string", length=255)
  20.      */
  21.     private $hash;
  22.     /**
  23.      * @ORM\ManyToOne(targetEntity="App\Entity\Gos\User", inversedBy="userFiles")
  24.      * @ORM\JoinColumn()
  25.      */
  26.     private $user;
  27.     /**
  28.      * @ORM\ManyToOne(targetEntity="App\Entity\Gos\File")
  29.      * @ORM\JoinColumn()
  30.      */
  31.     private $file;
  32.     /**
  33.      * @ORM\Column(type="datetime")
  34.      */
  35.     private $createdAt;
  36.     /**
  37.      * @ORM\ManyToOne(targetEntity="App\Entity\Gos\ProductVariant")
  38.      * @ORM\JoinColumn()
  39.      */
  40.     private $productVariant;
  41.     /**
  42.      * @ORM\Column(type="boolean", nullable=true)
  43.      */
  44.     private $hasAccess;
  45.     /**
  46.      * @ORM\Column(type="datetime", nullable=true)
  47.      */
  48.     private $accessExpirationDate;
  49.     /**
  50.      * @ORM\ManyToOne(targetEntity=Orders::class, cascade={"persist"})
  51.      */
  52.     private $orders;
  53.     /**
  54.      * @ORM\ManyToOne(targetEntity=VirtualCurrencyOrder::class)
  55.      */
  56.     private $virtualCurrencyOrder;
  57.     /** @ORM\PrePersist() */
  58.     public function onPrePersist(): void
  59.     {
  60.         $this->createdAt = new \DateTime();
  61.     }
  62.     public function __toString()
  63.     {
  64.         return $this->hash;
  65.     }
  66.     public function getId(): ?int
  67.     {
  68.         return $this->id;
  69.     }
  70.     public function getHash(): ?string
  71.     {
  72.         return $this->hash;
  73.     }
  74.     public function setHash(string $hash): self
  75.     {
  76.         $this->hash $hash;
  77.         return $this;
  78.     }
  79.     public function getUser(): ?User
  80.     {
  81.         return $this->user;
  82.     }
  83.     public function setUser(?User $user): self
  84.     {
  85.         $this->user $user;
  86.         return $this;
  87.     }
  88.     public function getFile(): ?File
  89.     {
  90.         return $this->file;
  91.     }
  92.     public function setFile(?File $file): self
  93.     {
  94.         $this->file $file;
  95.         return $this;
  96.     }
  97.     public function getCreatedAt(): ?\DateTimeInterface
  98.     {
  99.         return $this->createdAt;
  100.     }
  101.     public function setCreatedAt(\DateTimeInterface $createdAt): self
  102.     {
  103.         $this->createdAt $createdAt;
  104.         return $this;
  105.     }
  106.     public function generateHash(): void
  107.     {
  108.         $hash md5($this->getFile()->getId() . $this->getUser()->getEmail() . (new \DateTime())->format('Y-m-d H:i:s'));
  109.         $this->setHash($hash);
  110.     }
  111.     public function getProductVariant(): ?ProductVariant
  112.     {
  113.         return $this->productVariant;
  114.     }
  115.     public function setProductVariant(?ProductVariant $productVariant): self
  116.     {
  117.         $this->productVariant $productVariant;
  118.         return $this;
  119.     }
  120.     public function getHasAccess(): ?bool
  121.     {
  122.         return $this->hasAccess;
  123.     }
  124.     public function setHasAccess(?bool $hasAccess): self
  125.     {
  126.         $this->hasAccess $hasAccess;
  127.         return $this;
  128.     }
  129.     public function getAccessExpirationDate(): ?\DateTimeInterface
  130.     {
  131.         return $this->accessExpirationDate;
  132.     }
  133.     public function setAccessExpirationDate(?\DateTimeInterface $accessExpirationDate): self
  134.     {
  135.         $this->accessExpirationDate $accessExpirationDate;
  136.         return $this;
  137.     }
  138.     public function getOrders(): ?Orders
  139.     {
  140.         return $this->orders;
  141.     }
  142.     public function setOrders(?Orders $orders): self
  143.     {
  144.         $this->orders $orders;
  145.         return $this;
  146.     }
  147.     public function getVirtualCurrencyOrder(): ?VirtualCurrencyOrder
  148.     {
  149.         return $this->virtualCurrencyOrder;
  150.     }
  151.     public function setVirtualCurrencyOrder(?VirtualCurrencyOrder $virtualCurrencyOrder): self
  152.     {
  153.         $this->virtualCurrencyOrder $virtualCurrencyOrder;
  154.         return $this;
  155.     }
  156. }