mivita/database/seeders/RecruitingChallenge2026Seeder.php
Kevin 3341c929eb Incentive (E1): "Nur fuer VIP sichtbar" und Ranglisten-Seite mit Teilnahme-Block oben
Haken vip_only am Incentive: aktives Incentive erscheint dann nur fuer
VIP-Konten in Sidenav, Dashboard, Teaser, Rangliste und Details, andere
Berater bekommen 404; das Tracking laeuft fuer alle weiter. Seeder setzt den
Haken fuer die Abstimmung der Recruiting Challenge.

Ranglisten-Seite: solange die Teilnahme nicht bestaetigt ist, steht der
Teilnahme-Block mit Praemien-Chips, Checkbox, Button und aufklappbaren
Bedingungen ganz oben, darunter Trennlinie, Titel, Untertitel, Bild,
Beschreibung und die Info-Kacheln. Ueberschriften vergroessert, Abo-Bloecke
nur wenn Abos zaehlen.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-22 11:11:33 +00:00

93 lines
5.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Incentive;
use Illuminate\Database\Seeder;
/**
* Recruiting Challenge Oktober 2026 bis Januar 2027 (Entwicklungsplan E1).
*
* Legt die Challenge mit den abgestimmten Texten als Entwurf an oder aktualisiert
* die Texte, wenn sie schon existiert (Schluessel: Slug). Konfigurationswerte werden
* nur beim Anlegen gesetzt, damit nachtraegliche Admin-Aenderungen erhalten bleiben.
*
* php artisan db:seed --class=RecruitingChallenge2026Seeder
*
* Danach im Admin pruefen, Bild eintragen und auf "Aktiv" stellen. Zur Abstimmung ist
* "Nur fuer VIP sichtbar" gesetzt; nach Freigabe den Haken entfernen.
*/
class RecruitingChallenge2026Seeder extends Seeder
{
public const SLUG = 'recruiting-challenge-2026-27';
public function run(): void
{
$texts = [
'name' => 'Recruiting Challenge 2026/27',
'subtitle' => '50 € für jeden neuen Partner. Plus Extrabonus für die Top 3.',
'description' => $this->description(),
'terms' => $this->terms(),
];
$config = [
'qualification_start' => '2026-10-01',
'qualification_end' => '2027-01-31',
'calculation_end' => '2027-01-31',
'points_partner_onetime' => 1,
'points_abo_onetime' => 0,
'min_direct_partners' => 0,
'min_customer_abos' => 0,
'max_winners' => 3,
'amount_per_partner' => 50,
'bonus_rank_1' => 500,
'bonus_rank_2' => 300,
'bonus_rank_3' => 200,
'include_sales_points' => false,
'status' => 0,
'vip_only' => true,
'image' => null,
];
$incentive = Incentive::withTrashed()->where('slug', self::SLUG)->first();
if ($incentive) {
$incentive->update($texts);
$this->command?->info('Recruiting Challenge aktualisiert (Texte), ID '.$incentive->id);
return;
}
$incentive = Incentive::create(array_merge($texts, $config, ['slug' => self::SLUG]));
$this->command?->info('Recruiting Challenge angelegt als Entwurf, ID '.$incentive->id);
}
private function description(): string
{
return <<<'HTML'
<p><strong>Jeder neue Partner bringt dir 50 €. Sofort gezählt, im Februar ausgezahlt.</strong></p>
<p>Vom 1. Oktober bis zum 31. Januar zählt jeder neue Partner, der mit dir startet und ein Starterpaket bestellt. Kein Mindestumsatz. Keine Mindestanzahl. Der erste zählt genauso wie der zwanzigste.</p>
<p>Und wer am 31. Januar die meisten neuen Partner im Team hat, holt sich obendrauf den Top 3 Bonus: <strong>500 € für Platz 1, 300 € für Platz 2, 200 € für Platz 3.</strong></p>
<p>Deine Punkte laufen automatisch mit. Bestätige einmal deine Teilnahme, dann steht dein Name in der Rangliste. Ab da gilt: Jedes Starterpaket zählt.</p>
<p><strong>Fünf neue Partner? 250 €. Zehn? 500 €. Und Platz 1 legt noch 500 € drauf.</strong></p>
HTML;
}
private function terms(): string
{
return <<<'HTML'
<h5>Teilnahmebedingungen: Recruiting Challenge 2026/27</h5>
<p><strong>1. Worum es geht.</strong> mivita veranstaltet die Recruiting Challenge 2026/27. Für jeden neuen Partner, den ein Berater im Aktionszeitraum gewinnt, zahlt mivita eine Prämie. Die drei Berater mit den meisten neuen Partnern erhalten zusätzlich einen Bonus.</p>
<p><strong>2. Wer mitmachen kann.</strong> Alle Berater mit aktivem Beraterkonto. Die Teilnahme wird einmal im Backoffice bestätigt. Neue Partner werden ab dem 1. Oktober 2026 gezählt, egal wann die Bestätigung erfolgt. Ohne Bestätigung erscheint der Berater in der Rangliste anonym und erhält keine Auszahlung.</p>
<p><strong>3. Aktionszeitraum.</strong> 1. Oktober 2026 bis 31. Januar 2027. Es zählt das Datum der bezahlten Registrierungsbestellung des neuen Partners.</p>
<p><strong>4. Was zählt.</strong> Ein neuer Partner ist eine Person, die sich im Aktionszeitraum mit dem Teilnehmer als Sponsor als Berater registriert und ein Starterpaket bezahlt hat. Eine Registrierung nur mit Mitgliedschaft zählt nicht. Jeder neue Partner wird einmal gezählt. Die Rangliste ergibt sich aus der Anzahl neuer Partner.</p>
<p><strong>5. Prämie.</strong> 50 € je neuem Partner, ohne Obergrenze. Die Berater auf den Plätzen 1 bis 3 erhalten zusätzlich 500 €, 300 € und 200 €.</p>
<p><strong>6. Gleichstand.</strong> Haben mehrere Berater die gleiche Anzahl neuer Partner, liegt vorn, wer diese Anzahl zuerst erreicht hat.</p>
<p><strong>7. Widerruf und Storno.</strong> Widerruft ein neuer Partner seine Registrierung oder wird die Bestellung storniert, entfällt die Wertung für diesen Partner. Stichtag ist die Auszahlung im Februar 2027, danach wird nicht mehr zurückgerechnet.</p>
<p><strong>8. Auszahlung.</strong> Die Prämien werden nach Ende der Challenge im Februar 2027 gesammelt ausgezahlt. Die Prämie ist eine Einnahme aus der Beratertätigkeit. Für die Versteuerung ist der Berater selbst verantwortlich.</p>
<p><strong>9. Ausschluss.</strong> Bei Missbrauch, zum Beispiel Scheinregistrierungen oder Mehrfachkonten, kann mivita einzelne Wertungen streichen oder den Teilnehmer ausschließen.</p>
<p><strong>10. Änderungen.</strong> mivita kann die Bedingungen aus sachlichem Grund anpassen. Änderungen werden im Backoffice bekannt gegeben.</p>
<p><strong>11. Datenschutz.</strong> Nach Bestätigung der Teilnahme sind Name und Punktestand des Teilnehmers in der Rangliste für andere Berater sichtbar.</p>
HTML;
}
}