fix: 🐛 destroy models if it has been deleted for more than 30 days

This commit is contained in:
Alexis Gousseau 2025-09-23 13:09:18 +02:00
parent 0ebdcb56b6
commit e213283d5f
2 changed files with 9 additions and 2 deletions

View file

@ -16,6 +16,6 @@ class Kernel extends ConsoleKernel
*/
protected function schedule(Schedule $schedule): void
{
$schedule->job(CleanTrashModels::class)->monthly();
$schedule->job(CleanTrashModels::class)->daily();
}
}

View file

@ -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();
}
});
});
}
}