fedi-feed-router/app/Jobs/CleanupArticlesJob.php
myrmidex cc94ba8e55
Some checks failed
CI / ci (push) Failing after 4m35s
CI / ci (pull_request) Failing after 4m23s
89 - Add article cleanup job with 30-day retention policy
2026-03-18 18:09:54 +01:00

25 lines
635 B
PHP

<?php
namespace App\Jobs;
use App\Enums\ApprovalStatusEnum;
use App\Models\Article;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Queue\Queueable;
class CleanupArticlesJob implements ShouldQueue
{
use Queueable;
private const RETENTION_DAYS = 30;
public function handle(): void
{
Article::where('created_at', '<', now()->subDays(self::RETENTION_DAYS))
->whereDoesntHave('routeArticles', fn ($q) => $q->whereIn('approval_status', [
ApprovalStatusEnum::PENDING,
ApprovalStatusEnum::APPROVED,
]))
->delete();
}
}