<?phpnamespace App\Entity;use App\Entity\Traits\ToArray;use App\Enum\DeliveryState\Status;use App\Repository\DeliveryStateRepository;use Doctrine\ORM\Mapping as ORM;/** * @ORM\Entity(repositoryClass=DeliveryStateRepository::class) */class DeliveryState{ use ToArray; /** * @ORM\Id * @ORM\GeneratedValue * @ORM\Column(type="integer") */ private $id; /** * @ORM\ManyToOne(targetEntity=MessageLog::class, inversedBy="deliveryStates") */ private $message; /** * @ORM\ManyToOne(targetEntity=Device::class) */ private $device; /** * @ORM\Column(type="enum", options={"values"="delivery_state_enum"}) */ private $status = Status::STATUS_PENDING; /** * @ORM\Column(type="integer") */ private $attempts = 0; /** * @ORM\Column(type="datetime", nullable=true) */ private $lastTryAt; /** * @ORM\Column(type="datetime", nullable=true) */ private $ackedAt; /** * @ORM\Column(type="datetime", nullable=true) */ private $deliveredAt; public function __construct() { $this->createdAt = new \DateTime(); } public function getId(): ?int { return $this->id; } public function getMessage(): ?MessageLog { return $this->message; } public function setMessage(?MessageLog $message): self { $this->message = $message; return $this; } public function getDevice(): ?Device { return $this->device; } public function setDevice(?Device $device): self { $this->device = $device; return $this; } public function getStatus() { return $this->status; } public function setStatus($status): self { $this->status = $status; return $this; } public function getAttempts(): ?int { return $this->attempts; } public function setAttempts(int $attempts): self { $this->attempts = $attempts; return $this; } public function getLastTryAt(): ?\DateTimeInterface { return $this->lastTryAt; } public function setLastTryAt(?\DateTimeInterface $lastTryAt): self { $this->lastTryAt = $lastTryAt; return $this; } public function getAckedAt(): ?\DateTimeInterface { return $this->ackedAt; } public function setAckedAt(?\DateTimeInterface $ackedAt): self { $this->ackedAt = $ackedAt; return $this; } public function getDeliveredAt(): ?\DateTimeInterface { return $this->deliveredAt; } public function setDeliveredAt(?\DateTimeInterface $deliveredAt): self { $this->deliveredAt = $deliveredAt; return $this; }}