Deploy-Notiz E1: Dateiliste, Archiv aus dem Commit-Stand, Terminal- und Admin-Schritte

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
Kevin 2026-09-22 14:24:13 +00:00
parent fb4313fbf7
commit 9c6f5abdf4

View file

@ -0,0 +1,104 @@
# Deploy 22.09.2026 — E1 Recruiting Challenge (vorbereitet, noch nicht live)
Paket aus dem [Entwicklungsplan E1](../_tickets/entwicklungsplan-protokoll-september-2026.md), Inhalte in
[2026-09-18-recruiting-challenge-inhalte.md](../_tickets/2026-09-18-recruiting-challenge-inhalte.md).
Letzter Deploy-Stand auf Produktion: `203999a` (14.09., Team-Statistik).
## Commits
| Commit | Inhalt |
| --- | --- |
| `b28f51b` | Geldprämie, Umsatzpunkte-Schalter, Auszahlungs-Export, mehrere aktive Incentives |
| `0894733`, `b091dd9` | Inhaltsvorlage, Texte als Seeder |
| `9879e67` | „Nur für VIP sichtbar“, Teilnahme-Block oben |
| `186398a`, `99370b3` | Bilder je Incentive, Prämie je Teampartner statt Punkte |
| `a1d8902`, `10b7494`, `5204444` | Eine Incentive-Seite (Teaser + Rangliste), Layout |
| `9b6717c`, `fb4313f` | VIP-Badge in der Navigation, Titelbild, Dashboard mit einem Button |
Das Paket ist unabhängig vom noch offenen Abo-/Audit-Paket (`c0535be`, `ec3ecad`, `66c6ae0`, `4899e3a`,
74 Dateien); die einzige gemeinsame Datei ist der Entwicklungsplan. Beide Pakete können getrennt oder
zusammen live gehen.
## Achtung: drei Dateien nicht aus dem Arbeitsverzeichnis hochladen
`app/Http/Controllers/HomeController.php`, `routes/domains/crm.php` und
`resources/views/layouts/includes/layout-sidenav.blade.php` enthalten im Arbeitsverzeichnis zusätzlich
uncommittete Arbeit (Newsletter-Listen, Berater-Übertragung, Payline). Deshalb liegt das komplette Paket als
Archiv aus dem Commit-Stand bereit:
```
storage/app/deploy/e1-recruiting-challenge-2026-09-22.tar.gz
```
Erzeugt mit `git archive HEAD …` über alle geänderten Dateien ohne `tests/` und `dev/`. Das Archiv auf dem
Server im Projektverzeichnis entpacken (`tar -xzf … -C /pfad/zum/projekt`), es enthält die Pfade relativ
zur Projektwurzel.
## Dateien im Paket
```
app/Http/Controllers/Admin/IncentiveController.php
app/Http/Controllers/HomeController.php
app/Http/Controllers/User/IncentiveController.php
app/Models/Incentive.php
app/Models/IncentiveParticipant.php
app/Services/Incentive/IncentivePayoutService.php (neu)
app/Services/Incentive/IncentivePointsLogRepairService.php
app/Services/Incentive/IncentiveTracker.php
database/migrations/2026_09_18_130000_add_payout_fields_to_incentives_table.php (neu)
database/migrations/2026_09_22_100000_add_vip_only_to_incentives_table.php (neu)
database/seeders/RecruitingChallenge2026Seeder.php (neu)
public/img/incentive/montenegro-incentive-2026/nikki-beach*.jpg (8 Dateien, verschoben)
public/img/incentive/recruiting-challenge-2026-27/incentive-recruiting-2026.jpg (neu)
resources/lang/de/incentive.php, en, es, fr
resources/views/admin/incentive/_form.blade.php
resources/views/admin/incentive/show.blade.php
resources/views/dashboard/_incentive.blade.php
resources/views/layouts/includes/layout-sidenav.blade.php
resources/views/user/incentive/_how_it_works.blade.php (neu)
resources/views/user/incentive/_payout_bullets.blade.php (neu)
resources/views/user/incentive/_payout_tile.blade.php (neu)
resources/views/user/incentive/details.blade.php
resources/views/user/incentive/teaser.blade.php
routes/domains/crm.php
```
Auf dem Server löschen:
```
resources/views/user/incentive/show.blade.php
public/img/incentive/nikki-beach.jpg … nikki-beach7.jpg (liegen jetzt im Unterordner)
```
## Terminal
```bash
composer dump-autoload # neuer Seeder
php artisan migrate # incentives: amount_per_partner, bonus_rank_1..3, include_sales_points, vip_only
php artisan db:seed --class=RecruitingChallenge2026Seeder # Challenge als Entwurf, nur VIP, mit Texten und Bild
php artisan view:clear && php artisan route:clear && php artisan config:clear
```
Die Migrationen fügen nur Spalten mit Standardwerten hinzu, Montenegro bleibt unverändert (Umsatzpunkte
an, keine Prämie, für alle sichtbar). Kein Snapshot-Neuaufbau, keine Datenänderung.
## Danach im Admin
1. Incentives → „Recruiting Challenge 2026/27“ öffnen, Texte und Werte prüfen (50 € / 500 / 300 / 200, Umsatzpunkte aus, nur VIP).
2. Status auf „Aktiv“ stellen. Sichtbar ist die Challenge dann nur für VIP-Konten (Sidenav mit Badge „VIP“, Dashboard-Karte, Seite `/incentive/recruiting-challenge-2026-27`).
3. Nach Freigabe durch Dani/Alois: Haken „Nur für VIP sichtbar“ entfernen. Ab dann sehen alle Berater die Challenge.
Gezählt wird ab 01.10. automatisch, unabhängig vom Zeitpunkt der Freischaltung (`incentive:calculate`
läuft täglich 05:00 für alle aktiven Incentives).
## Woran man merkt, dass etwas nicht stimmt
- Montenegro-Seite: Galerie zeigt weiterhin die acht Strandfotos (Unterordner wurde hochgeladen).
- Challenge-Seite als VIP: Teilnahme-Block oben, Titelbild, drei Kacheln, „So funktioniert die Challenge“ über die volle Breite, Live-Ranking unten, keine Impressionen.
- Als normaler Berater: Challenge nirgends sichtbar, `/incentive/recruiting-challenge-2026-27` liefert 404.
- Admin-Detailseite: Button „Auszahlungs-Export (XLSX)“ und Badge „nur VIP“.
## Offen (nicht in diesem Paket)
Gleichstandsregel „zuerst erreicht“, Storno entfernt Wertung, Export nur bestätigte Teilnehmer, Übersetzungen
EN/ES/FR — siehe Abschnitte 9 und 10 der Inhaltsvorlage. Vor dem 01.10. nur die Gleichstandsregel nötig.