. */ declare(strict_types=1); namespace FireflyIII\Support\Cronjobs; use Carbon\Carbon; /** * Class AbstractCronjob */ abstract class AbstractCronjob { public bool $jobErrored = false; public bool $jobFired = false; public bool $jobSucceeded = false; public ?string $message = null; public int $timeBetweenRuns = 43200; protected Carbon $date; protected bool $force = false; /** * AbstractCronjob constructor. */ public function __construct() { $this->date = today(config('app.timezone')); } 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; } }