mivita/dev/2026-07-22/deploy-2026-09-22-e1.md
Kevin 979a12d1cb Doku: Deploy-Stand 25.09. markiert, Challenge-Start 9. Oktober
A1-A4 und E1 live seit 23.09., B2, A07, Abo-Warnung und E1-Nachtraege
live seit 25.09., Settings auf 0, Montenegro beendet. Offen: erster
user:cleanup-Lauf, Seeder fuer den Challenge-Start 09.10.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-25 10:28:27 +00:00

5.8 KiB

Deploy 22.09.2026 — E1 Recruiting Challenge (live seit 23.09.)

Stand 25.09.: Deployt am 23.09., Nachträge (Gleichstand, Zählung nach Zahlungsdatum, Schalter „Abos berücksichtigen“) live seit 25.09. Montenegro ist beendet. Start der Challenge verschoben auf den 9. Oktober; Seeder mit neuem Datum und EN/ES/FR-Texten erneut einspielen (php artisan db:seed --class=RecruitingChallenge2026Seeder --force). Aktueller Stand im Entwicklungsplan E1.

Paket aus dem Entwicklungsplan E1, Inhalte in 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

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 09.10. (bis 24.09. geplant: 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“ (live 25.09.), Storno entfernt Wertung, Export nur bestätigte Teilnehmer, Übersetzungen EN/ES/FR (im Seeder, 25.09.) — siehe Abschnitte 9 und 10 der Inhaltsvorlage.