39 lines
1.0 KiB
PHP
Executable File
39 lines
1.0 KiB
PHP
Executable File
<?php
|
||
|
||
namespace App\Commands;
|
||
|
||
use CodeIgniter\CLI\BaseCommand;
|
||
use CodeIgniter\CLI\CLI;
|
||
use App\Models\NotificationModel;
|
||
|
||
class CleanupExpiredNotifications extends BaseCommand
|
||
{
|
||
protected $group = 'Maintenance';
|
||
protected $name = 'notifications:cleanup';
|
||
protected $description = 'Deletes expired notifications from the database.';
|
||
|
||
public function run(array $params)
|
||
{
|
||
$model = new NotificationModel();
|
||
|
||
// Fetch expired notifications
|
||
$expired = $model->where('expires_at IS NOT NULL')
|
||
->where('expires_at < NOW()')
|
||
->findAll();
|
||
|
||
if (empty($expired)) {
|
||
CLI::write("ℹ No expired notifications found to soft delete.", 'yellow');
|
||
return;
|
||
}
|
||
|
||
$count = 0;
|
||
foreach ($expired as $note) {
|
||
$model->delete($note['id']); // Soft delete
|
||
$count++;
|
||
}
|
||
|
||
CLI::write("✅ Soft-deleted {$count} expired notifications.", 'green');
|
||
}
|
||
|
||
}
|