ldc-groupe/app/Jobs/CleanTrashModels.php

39 lines
1 KiB
PHP

<?php
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;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
class CleanTrashModels implements ShouldQueue, ShouldBeUnique
{
use Dispatchable;
use InteractsWithQueue;
use Queueable;
use SerializesModels;
/**
* Execute the job.
*
* @return void
*/
public function handle(): void
{
collect([DynamicPage::class, PageConfig::class])->map(function (string $class) {
$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();
}
});
});
}
}