<?php namespace Xentral\Modules\AmazonVendorDF\Data; use DateTime; class Transaction { const STATUS_FAILURE = 'Failure'; const STATUS_PROCESSING = 'Processing'; const STATUS_SUCCESS = 'Success'; const STATUS_WAITING = 'Waiting'; const STATUS_CLOSED = 'Closed'; /** @var int */ private $id; /** @var string */ private $externalId; /** @var string */ private $subject; /** @var string */ private $subject_id; /** @var string */ private $status; /** @var array */ private $errors; /** @var DateTime */ private $created_at; /** @var DateTime */ private $updated_at; public function __construct(string $subject = '') { $this->subject = $subject; } public function isWaiting(): bool { return $this->status === self::STATUS_WAITING; } public function isProcessing(): bool { return $this->status === self::STATUS_PROCESSING; } public function hasFailed(): bool { return $this->status === self::STATUS_FAILURE; } public function hasSucceeded(): bool { return $this->status === self::STATUS_SUCCESS; } public function getId(): ?int { return $this->id; } public function setId(int $id): self { $this->id = $id; return $this; } public function getExternalId(): ?string { return $this->externalId; } public function setExternalId(string $externalId): self { $this->externalId = $externalId; return $this; } public function getSubject(): string { return $this->subject; } public function setSubject(string $subject): self { $this->subject = $subject; return $this; } public function getSubjectId(): ?string { return $this->subject_id; } public function setSubjectId(string $subject_id): self { $this->subject_id = $subject_id; return $this; } public function getStatus(): ?string { return $this->status; } public function setStatus(string $status): self { $this->status = $status; return $this; } public function getErrors(): array { return $this->errors; } public function setErrors(array $errors): self { $this->errors = $errors; return $this; } public function getCreatedAt(): DateTime { return $this->created_at; } public function setCreatedAt(DateTime $created_at): self { $this->created_at = $created_at; return $this; } public function getUpdatedAt(): DateTime { return $this->updated_at; } public function setUpdatedAt(DateTime $updated_at): self { $this->updated_at = $updated_at; return $this; } }