/** * @return null|string */ public function getStatus() { $status = parent::getStatus(); if ($status == static::ENABLED && $this->availableOn) { $currentTime = DateTimeHelper::currentTimeStamp(); $availableOn = $this->availableOn->getTimestamp(); $expiresOn = $this->expiresOn ? $this->expiresOn->getTimestamp() : null; if ($availableOn <= $currentTime && (!$expiresOn || $expiresOn > $currentTime)) { return static::LIVE; } else { if ($availableOn > $currentTime) { return static::PENDING; } else { return static::EXPIRED; } } } return $status; }