presseportale/app/Console/Commands/ResetMonthlyPressReleaseQuota.php
Kevin Adametz 54a2e64698 R1.3: Quota-Reset als fester Bestandteil des Tarif-Modells festgeschrieben
Der "Stub bis zum Tarif-Modul"-Kommentar war ueberholt: Das Tarif-Modul
existiert und rechnet in pressReleaseQuotaRemaining() gegen genau diesen
Zaehler. Kalendermonats-Reset dokumentiert als bewusste Vereinfachung
(nicht an der individuellen Abo-Periode ausgerichtet). Keine Logik-
Aenderung; Verhalten via PressReleaseQuotaTest abgedeckt.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 08:08:23 +00:00

40 lines
1.2 KiB
PHP

<?php
namespace App\Console\Commands;
use App\Models\User;
use Illuminate\Console\Command;
/**
* Setzt den monatlichen PM-Kontingent-Verbrauch aller User zurück.
*
* Fester Bestandteil des Tarif-Modells (geprüft R1.3, 03.07.2026): Die
* Plan-Kontingente (§2/§3.3 Decision-Update) gelten pro Kalendermonat;
* User::pressReleaseQuotaRemaining() rechnet gegen diesen Zähler. Läuft
* per Scheduler am Monatsersten (siehe routes/console.php). Bewusste
* Vereinfachung: Reset am Kalendermonat, nicht an der individuellen
* Abo-Periode ausgerichtet.
*/
class ResetMonthlyPressReleaseQuota extends Command
{
/**
* @var string
*/
protected $signature = 'press-releases:reset-monthly-quota';
/**
* @var string
*/
protected $description = 'Setzt den monatlichen PM-Kontingent-Verbrauch (press_release_quota_used_this_month) aller User auf 0 zurück.';
public function handle(): int
{
$affected = User::query()
->where('press_release_quota_used_this_month', '>', 0)
->update(['press_release_quota_used_this_month' => 0]);
$this->info(sprintf('Kontingent-Verbrauch für %d User zurückgesetzt.', $affected));
return self::SUCCESS;
}
}