Publication initiale de RelaisSMS : documentation et sources nettoyees

This commit is contained in:
2026-10-21 09:29:39 +02:00
commit ac186b03b1
158 changed files with 24818 additions and 0 deletions
@@ -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;
}
}