Incentive (E1): Bilder je Incentive, Teaser mit Call to Action oben, Praemie je Teampartner statt Punkte

Titelbild und Galerie liegen jetzt in public/img/incentive/<slug>/, der
Hauptordner ist nur noch Fallback fuers Titelbild. Damit erscheinen die
Montenegro-Impressionen nicht mehr unter der Challenge; die Fotos sind in
montenegro-incentive-2026/ verschoben.

Teaser: Call to Action "Bist du bereit fuer die Challenge?" mit Button ganz
oben. Bei Geldpraemie zeigen die Kacheln "Deine Praemie" (50 EUR je neuem
Teampartner) und "Top 3 Bonus" statt Incentive-Punkte, darunter der Abschnitt
"So funktioniert die Challenge". Rangliste: Button "Jetzt teilnehmen" wieder
in der Sekundaerfarbe.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-09-22 12:37:58 +00:00
parent 3341c929eb
commit f340d0de3d
20 changed files with 278 additions and 135 deletions

View file

@ -93,7 +93,7 @@ So im Seeder hinterlegt. Die Punkte 2 (Bestätigung als Voraussetzung), 6 (Gleic
Hero-Bild liefert Kevin: Querformat, ca. 1600 × 600 px, JPG. Kein Strandmotiv, sonst sieht es aus wie Montenegro. Ablage unter `public/img/incentive/`, Dateiname im Admin ins Feld "Bild".
Achtung Galerie: Dashboard-Karte und Teaser zeigen heute alle Bilder aus diesem Ordner, also auch die acht Montenegro-Strandfotos unter der Challenge. Das wird vor dem Start umgebaut (Unterordner je Incentive, Abschnitt 10). Bis dahin keine weiteren Bilder in den Ordner legen.
Galerie (seit 22.09. getrennt): Jedes Incentive hat seinen eigenen Bildordner `public/img/incentive/<slug>/`. Die Challenge bekommt nur ein Titelbild, also `public/img/incentive/recruiting-challenge-2026-27/<dateiname>.jpg`, keine Impressionen. Die Montenegro-Fotos liegen jetzt unter `montenegro-incentive-2026/`. Der Teaser beginnt mit dem Call to Action "Bist du bereit für die Challenge?" und dem Button zur Teilnahme, darunter Titelbild, Text und die drei Kacheln Zeitraum, Prämie je Teampartner und Top 3 Bonus.
Das Badge auf der Dashboard-Karte heißt bei Geldprämie automatisch "Challenge" statt "Incentive VIP". Farbwelt bleibt die des Incentive-Moduls.
@ -131,7 +131,6 @@ Bonushöhe ist entschieden (500 / 300 / 200 €). Übrig bleiben die Regelfragen
| Punkt | Aufwand | Wann |
|---|---|---|
| Galerie je Incentive trennen (Unterordner `public/img/incentive/<slug>/`, Fallback auf Hauptordner für Montenegro) | 0,5 PT | vor dem 01.10. |
| Gleichstandsregel "zuerst erreicht" (Frage 1), steht bereits in den Bedingungen | 0,5 PT | vor dem 01.10. |
| Storno entfernt Neupartner-Wertung (Frage 2), falls Automatik gewünscht | 1 PT | vor der Auszahlung |
| Export nur bestätigte Teilnehmer (Frage 3) | 0,25 PT | vor der Auszahlung |
@ -147,14 +146,14 @@ php artisan db:seed --class=RecruitingChallenge2026Seeder
php artisan view:clear && php artisan route:clear
```
Danach im Admin: Bild eintragen, Texte prüfen, Status auf "Aktiv". Der Seeder setzt den Haken "Nur für VIP sichtbar": Sidenav, Dashboard, Teaser und Rangliste sehen dann nur VIP-Konten, so kann der Kunde die Challenge im Backoffice prüfen, ohne dass Berater sie sehen. Punkte laufen trotzdem für alle mit. Nach Freigabe den Haken im Admin entfernen. Lokal ist die Challenge angelegt, aktiv und auf VIP gestellt (ID 3).
Beim Deploy den Ordner `public/img/incentive/montenegro-incentive-2026/` mit hochladen; die alten Dateien direkt in `public/img/incentive/` können danach gelöscht werden. Danach im Admin: Bild eintragen, Texte prüfen, Status auf "Aktiv". Der Seeder setzt den Haken "Nur für VIP sichtbar": Sidenav, Dashboard, Teaser und Rangliste sehen dann nur VIP-Konten, so kann der Kunde die Challenge im Backoffice prüfen, ohne dass Berater sie sehen. Punkte laufen trotzdem für alle mit. Nach Freigabe den Haken im Admin entfernen. Lokal ist die Challenge angelegt, aktiv und auf VIP gestellt (ID 3).
## 12. Checkliste bis zum Start
- [ ] Fragen 1 bis 10 mit Dani/Alois entschieden
- [ ] Texte freigegeben (Name, Untertitel, Beschreibung, Bedingungen), ggf. Übersetzungen
- [ ] Hero-Bild geliefert und abgelegt
- [ ] Galerie-Trennung und Gleichstandsregel deployt
- [ ] Gleichstandsregel deployt
- [ ] Deploy E1 und Seeder auf Produktion
- [ ] Challenge im Admin geprüft, Teaser und Rangliste angesehen
- [ ] Ankündigungsmail raus

View file

@ -452,6 +452,7 @@ Das Incentive-Modul trägt jetzt optional eine Geldprämie; Montenegro bleibt un
- **Mehrere aktive Incentives:** Sidenav listet alle aktiven Incentives (bei mehreren mit Namen), Dashboard zeigt je Incentive eine Karte mit eigenen Modal-IDs; `HomeController` liefert `activeIncentives`/`incentiveParticipants` (die alten Einzelvariablen bleiben befüllt). Montenegro kann so bis zum Abschluss parallel stehen bleiben.
- **Berater-Ansichten:** Teaser und Rangliste zeigen bei Geldprämie ohne Mindestqualifikation eine Prämien-Kachel statt „Dein Ticket“, blenden die Abo-Blöcke aus, wenn Abos keine Rolle spielen, und ergänzen die Rangliste um die Spalte „Prämie“; Header/Details zeigen „Deine Prämie bisher“. Der Punkte-Boost-Text erscheint nur, wenn Umsatzpunkte zählen.
- **Nur für VIP sichtbar (22.09.):** Haken am Incentive (`incentives.vip_only`, Migration `2026_09_22_100000`). Aktives Incentive erscheint dann nur für VIP-Konten (Sidenav, Dashboard, Teaser, Rangliste, Details; andere bekommen 404), Tracking läuft für alle. Zur Abstimmung mit dem Kunden; danach Haken entfernen. Ranglisten-Seite umgebaut: Teilnahme-Block mit Prämien-Chips und Bedingungen steht oben, solange die Teilnahme nicht bestätigt ist, darunter Trennlinie und die Inhalte; Überschriften vergrößert. Inhalte/Texte: [2026-09-18-recruiting-challenge-inhalte.md](2026-09-18-recruiting-challenge-inhalte.md), Seeder `RecruitingChallenge2026Seeder`.
- **Bilder je Incentive (22.09.):** Titelbild und Galerie liegen in `public/img/incentive/<slug>/` (`Incentive::heroImagePath()`, `galleryImages()`); der Hauptordner dient nur noch als Fallback fürs Titelbild. Montenegro-Fotos nach `montenegro-incentive-2026/` verschoben (beim Deploy mit hochladen). Teaser: Call to Action ganz oben, bei Geldprämie Kacheln „Deine Prämie“ (50 € je Teampartner) und „Top 3 Bonus“ statt Punkte, Abschnitt „So funktioniert die Challenge“.
- **Tests:** [`IncentiveVipOnlyTest`](../../tests/Feature/Incentive/IncentiveVipOnlyTest.php), [`RecruitingChallengeSeederTest`](../../tests/Feature/Incentive/RecruitingChallengeSeederTest.php), [`IncentivePayoutTest`](../../tests/Feature/Incentive/IncentivePayoutTest.php), [`IncentiveSalesPointsToggleTest`](../../tests/Feature/Incentive/IncentiveSalesPointsToggleTest.php), [`IncentiveAdminPayoutTest`](../../tests/Feature/Incentive/IncentiveAdminPayoutTest.php). Incentive-Suite: 48 grün, 1 vorbestehender Fehlschlag (`IncentiveTeaserPageTest`, Hero-Bild in der Galerie – unabhängig von E1).
**Konfiguration der Challenge (Admin → Incentives → Neu):**