From e213283d5ff77ebd03214973bbf10ec247ff727e Mon Sep 17 00:00:00 2001 From: Alexis Gousseau Date: Tue, 23 Sep 2025 13:09:18 +0200 Subject: [PATCH] fix: :bug: destroy models if it has been deleted for more than 30 days --- app/Console/Kernel.php | 2 +- app/Jobs/CleanTrashModels.php | 9 ++++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 5a84eca8..9b1d4fc1 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -16,6 +16,6 @@ class Kernel extends ConsoleKernel */ protected function schedule(Schedule $schedule): void { - $schedule->job(CleanTrashModels::class)->monthly(); + $schedule->job(CleanTrashModels::class)->daily(); } } diff --git a/app/Jobs/CleanTrashModels.php b/app/Jobs/CleanTrashModels.php index d63bc99d..1e3e57b2 100644 --- a/app/Jobs/CleanTrashModels.php +++ b/app/Jobs/CleanTrashModels.php @@ -4,6 +4,7 @@ namespace App\Jobs; use App\Models\DynamicPage; use App\Models\PageConfig; +use Carbon\Carbon; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Contracts\Queue\ShouldBeUnique; @@ -26,7 +27,13 @@ class CleanTrashModels implements ShouldQueue, ShouldBeUnique public function handle(): void { collect([DynamicPage::class, PageConfig::class])->map(function (string $class) { - $class::onlyTrashed()->each(fn($model) => $model->forceDelete()); + $class::onlyTrashed()->each(function ($model) { + // Delete model if it has been deleted for more than 30 days. + $date = Carbon::now()->subDays(30); + if ($model->deleted_at->lt($date)) { + $model->forceDelete(); + } + }); }); } }