append(static::class) ->__toString(); if (Config::has($connectionKey)) { $this->setConnection(Config::get($connectionKey)); } } /** * Restore a soft-deleted model instance. * * @return bool|null */ public function restore(): ?bool { // If the restoring event does not return false, we will proceed with this // restore operation. Otherwise, we bail out so the developer will stop // the restore totally. We will clear the deleted timestamp and save. if ($this->fireModelEvent('restoring') === false) { return false; } $this->{$this->getDeletedAtColumn()} = null; // Once we have saved the model, we will fire the "restored" event so this // developer will do anything they need to after a restore operation is // totally finished. Then we will return the result of the save call. $this->exists = true; // Save quietly so that we do not fire an updated event on restore $result = $this->saveQuietly(); $this->fireModelEvent('restored', false); return $result; } /** * Get the prunable model query. * * @return Builder */ public function prunable(): Builder { return static::onlyTrashed()->where( BaseModel::ATTRIBUTE_DELETED_AT, ComparisonOperator::LTE->value, now()->subWeek() ); } /** * Get the action logs for the model. * * @return MorphMany */ public function action_logs(): MorphMany { return $this->morphMany(ActionLog::class, 'actionable'); } }