<?phpnamespace App\Entity;use App\Repository\AwardRepository;use Doctrine\ORM\Mapping as ORM;use Gedmo\Timestampable\Traits\TimestampableEntity;/** * @ORM\Entity(repositoryClass=AwardRepository::class) */class Award{ use TimestampableEntity; public const EXCHANGED = 'exchanged'; public const NOT_EXCHANGED = 'not_exchanged'; public const EXPIRED = 'expired'; public const STATES = [self::EXCHANGED, self::NOT_EXCHANGED]; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\ManyToOne(targetEntity=Discount::class, inversedBy="awards") * @ORM\JoinColumn(nullable=false) */ private $discount; /** * @ORM\ManyToOne(targetEntity=User::class, inversedBy="awards") */ private $user; /** * @ORM\Column(type="string", length=128) */ private $status = self::NOT_EXCHANGED; /** * @ORM\Column(type="datetime_immutable", nullable=true) */ private $exchangedAt; /** * @ORM\Column(type="datetime_immutable", nullable=true) */ private $captureAt; public function getId(): ?int { return $this->id; } public function getDiscount(): ?Discount { return $this->discount; } public function setDiscount(?Discount $discount): self { $this->discount = $discount; return $this; } public function getUser(): ?User { return $this->user; } public function setUser(?User $user): self { $this->user = $user; return $this; } public function getStatus(): ?string { return $this->status; } public function setStatus(string $status): self { $this->status = $status; return $this; } public function getExchangedAt(): ?\DateTimeImmutable { return $this->exchangedAt; } public function setExchangedAt(?\DateTimeImmutable $exchangedAt): self { $this->exchangedAt = $exchangedAt; return $this; } public function getCaptureAt(): ?\DateTimeImmutable { return $this->captureAt; } public function setCaptureAt(?\DateTimeImmutable $captureAt): self { $this->captureAt = $captureAt; return $this; }}