. */ declare(strict_types=1); namespace FireflyIII\Support\Cronjobs; use Carbon\Carbon; /** * Class AbstractCronjob */ abstract class AbstractCronjob { public bool $jobErrored; public bool $jobFired; public bool $jobSucceeded; public ?string $message; public int $timeBetweenRuns = 43200; protected Carbon $date; protected bool $force; /** * AbstractCronjob constructor. */ public function __construct() { $this->force = false; $this->date = today(config('app.timezone')); $this->jobErrored = false; $this->jobSucceeded = false; $this->jobFired = false; $this->message = null; } abstract public function fire(): void; final public function setDate(Carbon $date): void { $newDate = clone $date; $this->date = $newDate; } final public function setForce(bool $force): void { $this->force = $force; } }