From e6c0fe65e27fa81531fc25568ac3fa62a4b7a539 Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Fri, 24 Apr 2026 11:08:16 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20save=20only=20updated=20m?= =?UTF-8?q?odels=20in=20planificated=20status=20job?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Jobs/UpdatePlanificatedStatus.php | 47 +++++++++++++-------------- 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/app/Jobs/UpdatePlanificatedStatus.php b/app/Jobs/UpdatePlanificatedStatus.php index b19314c..8149286 100644 --- a/app/Jobs/UpdatePlanificatedStatus.php +++ b/app/Jobs/UpdatePlanificatedStatus.php @@ -20,37 +20,34 @@ class UpdatePlanificatedStatus */ public function handle(): void { - // Set all models to apply status modifications. collect([News::class, Strip::class]) ->each(function (string $model) { - // Get all published model with an unpublish_at date passed. - /** @var \Illuminate\Database\Eloquent\Collection $modelListToUnPublish */ - $modelListToUnPublish = $model::query() + /** @var \Illuminate\Database\Eloquent\Collection */ + $modelListToPublish = $model::query() + ->whereNotNull('publish_at') + ->where('publish_at', '<=', Carbon::now()) + ->where(function ($query) { + $query->whereNull('unpublish_at') + ->orWhere('unpublish_at', '>', Carbon::now()); + }) + ->where('published', false) + ->get(); + Log::debug(__CLASS__ . " models to publish " . $modelListToPublish->count()); + $modelListToPublish->each(function ($currentModel) { + $currentModel->published = true; + $currentModel->saveOrFail(); + }); + + /** @var \Illuminate\Database\Eloquent\Collection */ + $modelListToUnpublish = $model::query() ->whereNotNull('unpublish_at') ->where('unpublish_at', '<=', Carbon::now()) ->where('published', true) ->get(); - Log::debug(__CLASS__ . " model to unpublish " . $modelListToUnPublish->count()); - - // Unpublish all models with an unpublish_at date passed. - $modelListToUnPublish->each(function (News|Strip $modelToUnpublish) { - $modelToUnpublish->published = false; - $modelToUnpublish->saveOrFail(); - }); - - // Get all unpublished model with a publish_at date passed. - /** @var \Illuminate\Database\Eloquent\Collection $modelListToPublish */ - $modelListToPublish = $model::query() - ->where('publish_at', '<=', Carbon::now()) - ->whereNotNull('publish_at') - ->where('published', false) - ->get(); - Log::debug(__CLASS__ . " model to publish " . $modelListToPublish->count()); - - // Publish all models with a publish_at date passed. - $modelListToPublish->each(function (News|Strip $modelToPublish) { - $modelToPublish->published = true; - $modelToPublish->saveOrFail(); + Log::debug(__CLASS__ . " models to unpublish " . $modelListToUnpublish->count()); + $modelListToUnpublish->each(function ($currentModel) { + $currentModel->published = false; + $currentModel->saveOrFail(); }); }); }