presseportale/dev/frontend/hub-flux/12-PHASE-4G-CUSTOMER-PORTAL.md
Kevin Adametz 9b47296cea
Some checks are pending
linter / quality (push) Waiting to run
tests / ci (push) Waiting to run
Rebrand Hub+Flux
2026-05-20 15:44:15 +02:00

78 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Phase 4G — Customer Portal (Mein Bereich)
> Sechstes Päckchen aus Phase 4. Folgt auf 4E
> (Profile/Settings).
**Status**: ✅ abgeschlossen · **Aufwand**: ~½ Tag · **Risiko**: niedrigmittel
---
## Scope
**Liste / Detail / Helper**:
- `resources/views/livewire/customer/invoices.blade.php` (194 Z.)
- `resources/views/livewire/customer/tokens.blade.php` (212 Z.)
- `resources/views/livewire/customer/bookings.blade.php` (52 Z.)
- `resources/views/livewire/customer/company-switcher.blade.php`
(91 Z., sitzt in der Sidebar)
- `resources/views/livewire/customer/press-kits/index.blade.php`
(119 Z.)
- `resources/views/livewire/customer/press-kits/show.blade.php`
(734 Z., großes Detail-Cockpit)
NICHT in diesem Päckchen:
- `customer/press-releases/*` — schon in 4A/4B/4C.
- `customer/dashboard.blade.php` — schon in Phase 2.
- `customer/profile.blade.php`, `customer/security.blade.php`
schon in 4E.
- Admin-Bereich (Päckchen 4F).
## Ziel
Alle Customer-Pages im Hub-Vokabular:
- **Page-Header** „User Backend"-Pille + Eyebrow
„Mein Bereich · …" + H1 + Subtitle.
- **KPI/Summary-Reihe** wo Stats existieren
(`<x-portal.stat-card>`).
- **Tabellen, Listen, Forms** in `.panel` mit `.panel-head`.
- **Flash-Boxen** (success/info/warn/error) auf Hub-Token.
- **Hub-Badges** statt `flux:badge` (außer dort wo speziell
begründet).
- **Empty-States** als Hub-Icon-Box.
- **Company-Switcher**: bleibt funktional, optisch Hub-Akzent.
## Was explizit NICHT angefasst wird
- Volt-Logik in allen Dateien.
- `<flux:select variant="combobox">`, `<flux:input>` usw.
- Konfirm-/Edit-Modals in `press-kits/show.blade.php` (falls
vorhanden).
- Bestimmte Strings, die Tests assertieren:
- **tokens**: „API-Tokens" (Heading),
„API-Tokens werden erst freigeschaltet" (Hinweis).
- **invoices**: „Hinweis zu Rechnungen",
„Rechnungsadresse im Profil pflegen", „Öffnen".
- **company-switcher**: „Firma öffnen",
`route('me.press-kits.show', …)`.
- **press-kits.show**: „Abrechnung", „Statistik" (Tab-Labels
bzw. Section-Headings).
## Akzeptanzkriterien
- [x] Plan
- [x] `customer/invoices`
- [x] `customer/tokens`
- [x] `customer/bookings` (Coming-Soon-Stub)
- [x] `customer/company-switcher` (Sidebar-Komponente)
- [x] `customer/press-kits/index`
- [x] `customer/press-kits/show` (Stammdaten/Kontakte/PMs/
Abrechnung/Statistik im Hub-Stil; Forms inline behalten)
- [x] `CustomerPortalTest`, `CustomerCompanyContextTest`,
`PanelConsolidationTest` grün (29 Tests, 131 Assertions).
- [x] Volle Suite: 230 passed, 3 skipped, 1 pre-existing fail
(`ApiDocumentationTest`, fehlende `docs/api/v1.yml`).
- [x] Build (portal: 418 kB CSS, 44 kB JS) + Pint clean +
PROGRESS.