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>
40 lines
1.2 KiB
PHP
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;
|
|
}
|
|
}
|