src/Entity/CRM/OptimaToken.php line 10

  1. <?php
  2. namespace App\Entity\CRM;
  3. use App\Repository\OptimaTokenRepository;
  4. use Doctrine\DBAL\Types\Types;
  5. use Doctrine\ORM\Mapping as ORM;
  6. #[ORM\Entity(repositoryClassOptimaTokenRepository::class)]
  7. class OptimaToken
  8. {
  9.     #[ORM\Id]
  10.     #[ORM\GeneratedValue]
  11.     #[ORM\Column]
  12.     private ?int $id null;
  13.     #[ORM\Column(length255)]
  14.     private ?string $firmName null;
  15.     #[ORM\Column(typeTypes::TEXT)]
  16.     private ?string $token null;
  17.     #[ORM\Column(typeTypes::DATETIME_MUTABLE)]
  18.     private ?\DateTimeInterface $generatedAt null;
  19.     public function getId(): ?int
  20.     {
  21.         return $this->id;
  22.     }
  23.     public function getFirmName(): ?string
  24.     {
  25.         return $this->firmName;
  26.     }
  27.     public function setFirmName(string $firmName): static
  28.     {
  29.         $this->firmName $firmName;
  30.         return $this;
  31.     }
  32.     public function getToken(): ?string
  33.     {
  34.         return $this->token;
  35.     }
  36.     public function setToken(string $token): static
  37.     {
  38.         $this->token $token;
  39.         return $this;
  40.     }
  41.     public function getGeneratedAt(): ?\DateTimeInterface
  42.     {
  43.         return $this->generatedAt;
  44.     }
  45.     public function setGeneratedAt(\DateTimeInterface $generatedAt): static
  46.     {
  47.         $this->generatedAt $generatedAt;
  48.         return $this;
  49.     }
  50.     public function isExpired(): bool
  51.     {
  52.         if (!$this->generatedAt) {
  53.             return true;
  54.         }
  55.         $expiryTime = clone $this->generatedAt;
  56.         $expiryTime->add(new \DateInterval('PT45M')); // 45 minut
  57.         return new \DateTime() > $expiryTime;
  58.     }
  59. }