presseportale/docs/STATUS-ABGLEICH-USER-PANEL.md

17 KiB
Raw Blame History

Status-Abgleich · User Panel

Stand: 2026-05-21

Dieses Dokument vergleicht die Konzept-Dokumente im Ordner docs/ mit dem tatsächlichen Code-Stand. Es dient als Single Source of Truth für die Entscheidung, welche Konzept-Abschnitte aktualisiert werden müssen und wo weiterhin Lücken bestehen.

Methode: Code-Inspektion aller Customer-Komponenten in resources/views/livewire/customer/, Models, Migrationen und Services gegen die Inhalte der Doku in docs/user-admin/ und docs/konzept/.

Lese-Hilfe:

  • Doku stimmt mit Code überein — kein Handlungsbedarf
  • 🔄 Doku ist überholt — Code ist schon weiter, Doku muss nachgezogen werden
  • 📝 Code ist hinter Doku — Konzept beschreibt etwas, das noch nicht gebaut ist
  • ⚠️ Inkonsistent — Doku und Code widersprechen sich
  • Nicht im Konzept — im Code da, aber nirgends dokumentiert

1. Globale Architektur des User Backends

Konzept-Aussage Quelle IST im Code Status
User/Admin getrennt, technisch gemeinsames Backend, Trennung über Rollen/Policies Admin-User.md Umgesetzt: PressReleasePolicy, Spatie-Rollen, Customer-/Admin-Routen
Navigation in „Mein Bereich · Finanzen · Konto" Admin-User.md, checkliste-user-backend.md components/layouts/app/sidebar.blade.php setzt die drei Gruppen
Topbar oben rechts mit Firmen-Kontext-Switcher Admin-User.md customer/company-switcher.blade.php + Layout-Integration
„Pressemappen" terminologisch auf „Firmen" umbenannt checkliste-user-backend.md Im UI durchgehend „Firmen" / „Meine Firmen"; Routen heißen aus Legacy-Gründen weiterhin me.press-kits.* 🔄 (Doku-Nacharbeit: Hinweis ergänzen, dass die internen Route-Namen weiterhin press-kits heißen)
Phase 1 funktional abgeschlossen checkliste-user-backend.md Z. 71 Trifft zu — alle in „Erledigt" markierten Punkte sind im Code verifizierbar

2. Customer-Pages — IST-Stand pro Page

Dashboard (customer/dashboard.blade.php)

Konzept-Aussage IST Status
Datenqualitäts-Hinweise (Profil, Rechnungsadresse, Pressekontakte, PMs ohne Firma) umgesetzt mit <x-portal.hint-card>
KPI-Reihe Pressemitteilungen umgesetzt mit <x-portal.stat-card>, Trend-Slot mit pub/prüf/entwurf
Filter-Reaktion auf Firmen-Kontext recent und companies queries respektieren selectedCompany

Pressemitteilungen-Liste (customer/press-releases/index.blade.php)

Konzept-Aussage IST Status
Status-Tabs (Alle/Veröffentlicht/Entwürfe/Prüfung/Abgelehnt/Archiv) umgesetzt als view-tabs mit Counter-Pillen
Filter ohne Firma, Status, Portal statusFilter, portalFilter, companyFilter aktiv
Filter-Presets (user_filter_presets) fehlt 📝 (in Phase 2 lt. Doku — bleibt pending)
PM-Detail Tab „Verlauf" aus press_release_status_logs als „Status & Verlauf"-Card eingebaut, nicht als eigener Tab 🔄 (Doku-Anpassung: Card statt Tab; funktional gleichwertig)
Hinweis Scheduling/Embargo in der Liste fehlt 📝 (s. eigener Gap-Block unten)

Pressemitteilungs-Forms

Konzept-Aussage IST Status
Einfacher Editor mit Absätzen, fett + kursiv Flux-Editor mit `heading bold italic
Pflichtfeld company_id für Customer Validation required
Portal aus Firma abgeleitet (Customer) updatedCompanyId() setzt portal aus company->portal
subtitle-Feld seit Phase 7 da (im Konzept nicht erwähnt, aber sinnvoll)
scheduled_at, embargo_at-Felder im Form seit Phase 7F da (im Konzept nicht beschrieben)
HTML-Sanitizer auf Save PressReleaseHtmlSanitizer (mews/purifier) (Konzept-Punkt 2/Bilder nennt KI-Check, aber keinen HTML-Sanitizer — sollte dokumentiert werden)
Boilerplate-Override pro PM seit Phase 7 als optionaler Override-Text (im Konzept nicht erwähnt)
Pressekontakt-Zuordnung Single-Select (1 pro PM, n:m beibehalten) seit Phase 7, jetzt optional/Warnung 🔄 (Konzept-Punkt: Pressekontakt war ursprünglich „mehrere möglich", jetzt 1 pro PM optional)
Attachment-Manager temporär deaktiviert wegen Security-Review ⚠️ (Konzept beschreibt Anhänge, Code hat es auskommentiert)

Pressemitteilungs-Detail (Customer Show)

Konzept-Aussage IST Status
Status & Verlauf inkl. Logs umgesetzt
Zugeordnete Pressekontakte umgesetzt
Rejection-Begründung sichtbar umgesetzt
Vorschau-Link für externe Reviewer generateShareLink via Magic-Link-Token
Anzeige Subtitle / scheduled_at / embargo_at / boilerplate_override fehlt (nur Admin-Show hat scheduled/embargo) 📝 (offener Punkt aus letzter Diskussion)

Firmen-Liste (customer/press-kits/index.blade.php)

Konzept-Aussage / Mockup IST Status
Karten-Grid pro Firma mit Logo, Status, Portal, Rolle, KPIs Karten vorhanden, aber deutlich schlichter als Mockup 📝 (Hauptthema Phase 8)
Counter-Strip (X Firmen, X aktiv, X PMs total, X Kontakte) fehlt 📝
Saved-View-Tabs (Alle / Aktiv / In Anlage / Inaktiv / Mit mir geteilt) fehlt 📝
Filter-Chips (Status / Portal / Rolle / Branche) nur Volltext-Suche 📝
Seg-Toggle Karten/Liste fehlt 📝
Empty-States (keine Firma / Filter ohne Treffer) nur generischer Empty-State 📝
Rollen-Legende (Admin / Redakteur / Beobachter) fehlt 📝
„Firma anlegen"-CTA derzeit zeigt nur „Firma anlegen anfragen" → Profil; Mockup hat direkten Anlage-Flow 🔄 (Firma-Self-Service ist Phase-2-Thema laut Doku, im Mockup aber wie Phase-1 dargestellt)

Firmen-Detail (customer/press-kits/show.blade.php)

Konzept-Aussage IST Status
Tabs Übersicht / Stammdaten / Pressekontakte / PMs / Statistik / Abrechnung eine lange Seite mit Quick-Nav-Anker, keine echten Tabs 🔄 (Doku-Update: Quick-Nav statt Tabs; visuell gleichwertig)
Stammdaten inkl. Logo bearbeitbar umgesetzt
Pressekontakte verwalten umgesetzt
Eigentümer-Anzeige konsolidiert aus owner_user_id + company_user.role umgesetzt
Statistik-Tab nur Stub („In Vorbereitung") 📝 (Phase 2)
Abrechnung-Tab nur Stub 📝 (Phase 2)
Magic-Link aktiv/inaktiv-Badge pro Kontakt fehlt 📝
Anzahl PMs pro Kontakt aus press_release_contact fehlt 📝
„+ Neuer Pressekontakt" mit Magic-Link-Berechtigung-Toggle nur Basis-Form, kein Magic-Link-Toggle 📝 (gehört zu Magic-Link-Flow → Phase 2)

Settings (settings/*, customer/profile, customer/security)

Konzept-Aussage IST Status
Profil + Rechnungsadresse + Sicherheit + Newsletter + API-Tokens alles vorhanden
Magic-Link-Verlauf in Sicherheit fehlt 📝 (Phase 2)
API-Nutzungs-Log fehlt 📝 (Phase 2)
Team-Tab (Agency-Tarif) fehlt 📝 (Phase 2)

Finanzen

Konzept-Aussage IST Status
Rechnungen mit Legacy-Archiv umgesetzt
Buchungen & Add-ons nur Stub 📝 (Phase 2)
Credits & Tarif nur „bald"-Eintrag in Sidebar 📝 (Phase 2)
Zahlungsmethoden firmenscharf fehlt 📝 (Phase 2)

3. Großthemen aus dem Konzept — Status

3.1 KI-Freigabe-Workflow

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 1.

Punkt Code-Stand
KI-Vorprüfung mit JSON-Antwort nicht implementiert
Drei-Stufen-Ergebnis grün/gelb/rot nur „review"/„published"/„rejected" via Admin-Flow
Logging der KI-Antworten fehlt
Trust-Score fehlt
Blacklist-Wort-Check vorhanden über PressReleaseService::submitForReview mit BlacklistViolationException

Bewertung: 📝 — Konzept-Vision für Phase 2/3, im Code nur die rudimentäre Blacklist-Variante.

3.2 Bilder & Lizenzen

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 2 + Admin-User.md Punkt 4.

Punkt Code-Stand
Upload-Workflow (Eigenes / Stock / KI) Nur „Eigenes Bild" via press-release-images-manager
Pflichtfelder (Urheber, Lizenztyp, Lizenz-URL, Personen-Einwilligung, Rechte-Bestätigung) Nur title + copyright (Freitext) — deutlich unter Konzept
KI-Wasserzeichen-Check fehlt
Unsplash/Pexels-API fehlt
KI-Bildgenerierung fehlt
is_preview-Flag für Titelbild im Modell vorhanden, im Manager toggelbar
Bild-Varianten (thumb/medium/large) ImageService::PRESS_RELEASE_IMAGE_VARIANTS generiert sie automatisch
SVG-Platzhalter, falls keine Bilder inline in Landing-Page-Komponenten (z. B. focus-hero, feed-top-item), kein zentrales Set

Bewertung: 📝 — Großthema für Phase 8 (siehe Plan). Lizenzfelder + SVG-Platzhalter sind Pflicht, bevor Bild-Upload produktiv geht.

3.3 Notice-and-Action (Meldung durch Dritte)

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 3.

Punkt Code-Stand
Öffentliches Melden-Formular fehlt
Ticketsystem mit Kategorien (Urheberrecht, Persönlichkeitsrecht, …) fehlt
KI-Triage fehlt
Quarantäne-Flow fehlt

Bewertung: 📝 — Phase 2/3-Thema, im Konzept gut beschrieben.

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 6.

Punkt Code-Stand
magic_links-Tabelle vorhanden
Magic-Link-Generator MagicLinkGenerator existiert (wird für PM-Vorschau-Links genutzt)
Magic-Link für Pressekontakt-Zugang fehlt als eigener Flow
Token-Tabelle press_release_access_requests o. ä. fehlt
Änderungs-Wizard (Tippfehler/Daten/Korrektur/Update/DSGVO) fehlt

Bewertung: 📝 — Phase 2-Thema, vollständig im Konzept beschrieben.

3.5 Pricing / Tarife / Credits

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 8 + 9, Konzept-Update 1.md.

Punkt Code-Stand
Tarif-Tabellen (Einzel/Starter/Business/Pro/Agency) nicht im Datenmodell
PM-Kontingent pro Tarif fehlt
Bonus-Credits monatlich fehlt
Credit-Pakete fehlt
Auto-Refill fehlt
Stripe-Integration fehlt
user_payment_options-Tabelle vorhanden (Pivot zu Companies da, aber kein aktiver Flow)

Bewertung: 📝 — Phase 2/3, größtes ungebautes Feature. Für Phase 8 ist relevant: bei PM-Einreichung wird konzeptuell Quota dekrementiert; die UI-Anzeige im Veröffentlichungs-Modal kann darauf vorbereitet werden, das echte Decrement-Verhalten kommt aber erst mit dem Tarif-Modul.

3.6 Korrektur-Modell & Tombstones

Konzept-Stand: Presseportal Konzept für Relaunch.md Abschnitt 4.

Punkt Code-Stand
Korrektur-Hinweis fehlt
Update-Hinweis (am Ende anhängen) fehlt
Anonymisierung (DSGVO) fehlt
Tombstone statt Hard-Delete PressReleaseService::deleteFromAdmin() setzt veröffentlichte PMs auf „archiviert" mit Ersatztext — rudimentär da
Textvorlagen admin-pflegbar fehlt

Bewertung: 🔄 — Tombstone-Variante existiert minimal; Konzept-Doku sollte den Ist-Stand notieren, der Rest ist Phase 2.

3.7 Score / Trust-Score (Konzept-Update 2)

Konzept-Stand: Konzept-Update 2 Score-Stufen-System.md.

Punkt Code-Stand
User-Score-Tabelle fehlt
Firmen-Score fehlt
Auto-Publishing in Abhängigkeit vom Score fehlt

Bewertung: 📝 — Phase 3, vollständig im Konzept.


4. Was im Code da ist, aber im Konzept nicht / nur am Rande steht

Feature Wo im Code Doku-Nacharbeit
Phase-7-Schema-Erweiterungen (press_releases.subtitle, scheduled_at, embargo_at, boilerplate_override, no_export) Migrationen 2026_05_20_* Im Konzept ergänzen, dass PMs Untertitel + Scheduling/Embargo unterstützen
mews/purifier für HTML-Sanitization PressReleaseHtmlSanitizer Im Konzept-Abschnitt zu Editor erwähnen
press_release_attachments-Tabelle + Model Migration 2026_05_20_143424_* UI auskommentiert, Tabelle bleibt → Doku-Anker für spätere Reaktivierung
Background-Job für scheduled publishing app/Console/Commands/PublishScheduledPressReleases.php, alle 5 Min via Scheduler Im Konzept als „automatische Veröffentlichung zum geplanten Termin" hinzufügen
FluxUI Toast für UX-Feedback Flux::toast() durchgehend in Customer-Forms Konzept-übergreifend, kein Konzept-Update nötig
Smooth-Scroll zu Validation-Errors resources/js/portal-form-hooks.js UX-Detail, keine Konzept-Doku
Pre-Submit-Check-Liste in PM-Forms computed presubmitChecks Im Konzept als „Pre-Submit-Check senkt Support-Aufwand" ergänzen
Hub-Design-System (Tokens + Komponenten) dev/frontend/hub-flux/ (Phase 07) Eigene Roadmap-Doku, nicht teil von docs/
Theme-Override pro Domain ThemeServiceProvider + config/domains.php In Echte öffentliche Unterseiten.md ergänzen
Public-Detail-Page (web/release-detail.blade.php) umgesetzt In Echte öffentliche Unterseiten.md als „existiert" markieren

5. Offene Punkte aus dem letzten Code-Review

Diese Punkte habe ich beim Review der Phase-7-Forms gefunden, sie sind weder in den Konzept-Dokumenten erfasst noch in einem Plan:

Lücke Betroffene Dateien Empfehlung
Customer-Show zeigt weder subtitle noch scheduled_at/embargo_at/boilerplate_override customer/press-releases/show.blade.php Phase 8
Admin-Show zeigt weder subtitle noch boilerplate_override admin/press-releases/show.blade.php Phase 8
Liste-Indikator für Scheduling/Embargo customer/press-releases/index.blade.php, admin/press-releases/index.blade.php Phase 8
Pressekontakt-Sidebar zeigt keine Warn-Box, wenn kein Kontakt gewählt customer/press-releases/create.blade.php, edit.blade.php Phase 8
Anhang-Tests laufen ins Leere tests/Feature/PressReleaseAttachmentsManagerTest.php, Teile von PressReleasePhase7SchemaTest.php Phase 8 → ->skip(...) mit Verweis auf Security-Review
Roadmap-Doku 19-PHASE-7-PRESS-RELEASE-FORM.md ist nicht mehr aktuell Letzte 3 große Änderungen fehlen Phase 8-Doku-Block

6. Empfehlungen zur Pflege der Doku

6.1 Sofort ohne Risiko machbar

  1. In Admin-User.md ergänzen: „PMs unterstützen Untertitel, Scheduling und Embargo seit Phase 7".
  2. In Presseportal Konzept für Relaunch.md Abschnitt 1: aktuellen Blacklist-Stand notieren („KI-Vorprüfung folgt; aktuell wird per Blacklist gegen offensichtliche Verstöße geprüft").
  3. In Presseportal Konzept für Relaunch.md Abschnitt 2: hinzufügen, dass Bilder aktuell nur als „Eigenes Bild" hochgeladen werden können, Stock- und KI-Quellen folgen.
  4. In Presseportal Konzept für Relaunch.md Abschnitt 4: notieren, dass Tombstone-Variante rudimentär da ist (deleteFromAdmin-Ersatztext), die Korrektur-/Update-Hinweise aber noch fehlen.
  5. In checkliste-user-backend.md neuen Block „Phase 7" hinzufügen mit Verweis auf dev/frontend/hub-flux/19-PHASE-7-PRESS-RELEASE-FORM.md.

6.2 Mit Phase 8 ergänzen

  1. Neuer Abschnitt im Admin-User.md: „Titelbild & SVG-Platzhalter".
  2. Neuer Abschnitt im Presseportal Konzept für Relaunch.md: „Veröffentlichungs-Modal & Quota-Kommunikation".
  3. Aktualisierung der Firmen-Liste-Doku im Admin-User.md mit den neuen UI-Bausteinen (Counter-Strip, Saved-Views, Filter-Chips, Card/List-Toggle, Rollen-Legende).

6.3 Längerfristig (Phase 2/3)

  1. Magic-Link-Flow für Pressekontakte → eigenes Doku-Kapitel, sobald gebaut.
  2. Tarif-/Credit-System → eigener Architektur-Block (Datenmodell, Stripe-Integration, Quota-Counter-Implementierung).

7. Quellen-Übersicht für die nächsten Schritte

Frage Quelle
Was ist konzeptuell der User-Backend-Aufbau? docs/user-admin/Admin-User.md
Was ist bereits umgesetzt, was offen? docs/user-admin/checkliste-user-backend.md (Phase 1 )
Datenmodell-Übersicht? docs/user-admin/user-zusammenhaenge.md
Großthemen-Konzept (KI, Bilder, Tombstones, Magic-Link, Pricing)? docs/user-admin/Presseportal Konzept für Relaunch.md
Brand- & Design-System? docs/konzept/Entwicklungs-Konzept - Frontend-Komponenten Multi-Brand.md, dev/frontend/hub-flux/*
Score-System? docs/konzept/Konzept-Update 2 Score-Stufen-System.md
Aktuelle Phase 7 (PM-Form-Refactor)? dev/frontend/hub-flux/19-PHASE-7-PRESS-RELEASE-FORM.md
Nächste Phase 8? docs/PHASE-8-USER-PANEL-PLAN.md (neu, neben diesem Dokument)