mivita/app/Models/RecognitionSnapshot.php
Kevin Adametz 7bc551ca1f Anerkennungen: firmenweite Monats-Ranglisten im Salescenter
- Neue Seite Anerkennungen (/user/recognitions, Menue unter News Archiv) fuer
  alle Berater mit aktivem Konto: oben die Anerkennungen des Vormonats in den
  fuenf Kategorien der Monatsmail, Filter zurueck bis Januar 2026; darunter
  Live-Ranglisten (Top 10 je Kategorie) des laufenden Monats, 15 Min. Cache.
- Kategorien: Top-Recruiter (ab 2 Neupartnern), neue Kunden-Abos,
  Kundenabo-Punkte, Kunden-Abos gesamt, Gesamtpunkte (1.000-Punkte-Shop,
  mit Platz 4). Regeln wie TopResultsService/VIP-Statistik, nur firmenweit.
- Firmenkonto (6) und Grosskundin (3) nie aufgefuehrt:
  config mivita.recognition_excluded_user_ids.
- Abgeschlossene Monate sind bis zum 3. des Folgemonats vorlaeufig und werden
  dann eingefroren: neue Tabelle recognition_snapshots, Command
  recognitions:freeze (taeglich 06:15, idempotent, holt offene Monate nach).
- September-Anerkennungen firmenweit geprueft und korrigiert.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 13:13:22 +00:00

32 lines
634 B
PHP

<?php
namespace App\Models;
use App\Services\Team\RecognitionService;
use Illuminate\Database\Eloquent\Model;
/**
* Eingefrorene Anerkennungen eines abgeschlossenen Monats
* ({@see RecognitionService::freeze()}).
*/
class RecognitionSnapshot extends Model
{
protected $table = 'recognition_snapshots';
protected $fillable = [
'year',
'month',
'payload',
'frozen_at',
];
protected function casts(): array
{
return [
'year' => 'int',
'month' => 'int',
'payload' => 'array',
'frozen_at' => 'datetime',
];
}
}