Publication initiale de RelaisSMS : documentation et sources nettoyees
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\SmsCampaign;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class PruneSmsHistoryCommand extends Command
|
||||
{
|
||||
protected $signature = 'sms-campaigns:prune-history {--dry-run : Compte les campagnes expirees sans les supprimer.}';
|
||||
|
||||
protected $description = 'Supprime les campagnes SMS plus anciennes que la duree de retention configuree.';
|
||||
|
||||
public function handle(): int
|
||||
{
|
||||
$retentionYears = (int) config('relais_sms.default_settings.history_retention_years', 3);
|
||||
|
||||
if ($retentionYears < 1) {
|
||||
$this->error('La retention doit etre superieure ou egale a 1 an.');
|
||||
|
||||
return self::FAILURE;
|
||||
}
|
||||
|
||||
$expiresBefore = now()->subYears($retentionYears);
|
||||
$query = SmsCampaign::query()->where('created_at', '<', $expiresBefore);
|
||||
$count = $query->count();
|
||||
|
||||
if ($this->option('dry-run')) {
|
||||
$this->line($count.' campagne(s) SMS expiree(s) avant '.$expiresBefore->format('Y-m-d H:i:s').'.');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
|
||||
$query->delete();
|
||||
$this->line($count.' campagne(s) SMS supprimee(s).');
|
||||
|
||||
return self::SUCCESS;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user