# Status-Abgleich · User Panel Stand: 2026-06-11 (Phase 8 vollständig abgeschlossen; KI-Prüf-Pipeline Phasen 0–5 umgesetzt; Titelbild-/Lizenz-/Zeitzonen-Umbau vom 10./11.06. eingearbeitet. Preise & Veröffentlichungs-Flow: siehe [`Decision-Update Preisstruktur & Veröffentlichungs-Flow.md`](./Decision-Update%20Preisstruktur%20&%20Ver%C3%B6ffentlichungs-Flow.md)) > 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 `` | ✅ | | KPI-Reihe Pressemitteilungen | umgesetzt mit ``, 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 | umgesetzt (Sub-Label „geplant · …" / „Embargo bis …" in der Datums-Spalte, `index.blade.php` Z. 505–514) | ✅ (Phase 8B) | ### Pressemitteilungs-Forms | Konzept-Aussage | IST | Status | |---|---|---| | Einfacher Editor mit Absätzen, fett + kursiv | Flux-Editor mit `heading | bold italic | bullet ordered blockquote | link` — mehr als minimal | 🔄 (Konzept-Update: Aktuelle Toolbar ist bewusst etwas größer als „nur fett + kursiv") | | 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 | `scheduled_at` da (Datum via `flux:date-picker` + Uhrzeit via `flux:time-picker`, Eingabe/Anzeige in Europe/Berlin, Speicherung UTC). **Embargo aus der Form-UI entfernt** (11.06.) — `embargo_at` bleibt im Schema, wird beim Speichern auf `null` geführt | 🔄 (bewusste Vereinfachung; Doku: `Umsetzung Pressemitteilung Bearbeitung Titelbild Veroeffentlichung.md`) | | Titelbild pro PM | ein einzelnes Cover-Bild (1280×580) oder SVG-Platzhalter; Upload-Form einklappbar, Platzhalter-Picker | ✅ (Phase 8F/8G + Umbau 11.06.) | | Einreichungs-Modal in allen Customer-Ansichten | `confirm-submit-review`-Modal in Show, Create **und** Edit (KI-Plan Phase 0) | ✅ | | 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; Warn-Box in der Sidebar-Card, wenn kein Kontakt gewaehlt (`create`/`edit.blade.php`) | ✅ (Phase 8C; Konzept-Punkt: 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` / `no_export` | umgesetzt — Subtitle unter H1, Scheduling/Embargo als Cards im „Status & Verlauf"-Block, Boilerplate-Override als eigene Card (`customer/press-releases/show.blade.php`) | ✅ (Phase 8A; Admin-Show analog) | ### Firmen-Liste (`customer/press-kits/index.blade.php`) | Konzept-Aussage / Mockup | IST | Status | |---|---|---| | Karten-Grid pro Firma mit Logo, Status, Portal, Rolle, KPIs | umgesetzt auf Mockup-Niveau (`.firm-card`, deterministische Logo-Varianten, Status-Badge, Portal-Pills, Rolle-Pill, KPIs) | ✅ (Phase 8E) | | Counter-Strip (X Firmen, X aktiv, X PMs total, X Kontakte) | umgesetzt | ✅ (Phase 8E) | | Saved-View-Tabs (Alle / Aktiv / In Anlage / Inaktiv / Mit mir geteilt) | umgesetzt mit Live-Counts; „In Anlage" bewusst noch leer (Phase-2-Heuristik) | ✅ (Phase 8E) | | Filter-Chips (Status / Portal / Rolle / Branche) | Portal + Rolle via FluxUI-Dropdown + URL-Sync umgesetzt | ✅ (Phase 8E) | | Seg-Toggle Karten/Liste | umgesetzt (`?mode=list`) | ✅ (Phase 8E) | | Empty-States (keine Firma / Filter ohne Treffer) | umgesetzt (3-Schritt-Onboarding + Reset-CTA) | ✅ (Phase 8E) | | Rollen-Legende (Admin / Redakteur / Beobachter) | umgesetzt als `panel-warm` | ✅ (Phase 8E) | | „Firma anlegen"-CTA | zeigt „Firma anlegen anfragen" → Profil (Add-Tile); Self-Service-Anlage bleibt Phase-2-Thema | 🔄 (bewusst, Firma-Self-Service ist Phase 2) | ### 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 Zentrale Billing-Referenz: [`user-admin/Billing-und-Rechnungskreise.md`](./user-admin/Billing-und-Rechnungskreise.md). | Konzept-Aussage | IST | Status | |---|---|---| | Rechnungen mit Legacy-Archiv | umgesetzt | ✅ | | Hybride Rechnungskreise STR-/MAN- (Decision 12.06.) | umgesetzt (Phase 9D) — Nummern-Generator, MAN-Fälligkeitslauf, Grandfather-Migration, USt-Logik (`VatResolver`) | ✅ | | Tarif-Datenmodell + Cashier | umgesetzt (Phase 9D) — `plans`, `single_purchases`, `User` ist Billable | ✅ | | Stripe-Checkout/Webhooks + STR-Spiegelung | umgesetzt (Phase 9E) — Produkt-Sync, Webhook-Verarbeitung, Checkout-Backend, Plan-Kontingent | ✅ (UI → 9F) | | Buchungen & Add-ons (UI) | nur Stub | 📝 (mit 9F Tarif-Seite) | | 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 + §15. **Umsetzungs-Doku**: `user-admin/Entwicklungsplan KI-Pruefung und Veroeffentlichung.md` (Phasen 0–5 ✅, 11.06.2026). | Punkt | Code-Stand | |---|---| | KI-Prüfung mit JSON-Antwort | **umgesetzt** — `ClassifyPressRelease`-Job (Queue `classification`), OpenAI-Treiber + deterministischer Fallback, provider-agnostische Architektur unter `app/Services/PressRelease/Classification/` | | Drei-Stufen-Ergebnis grün/gelb/rot | **umgesetzt** — `press_releases.classification`; Routing (seit Phase 9A, Entscheidung 12.06.2026): Rot → `rejected` + Mail, **Gelb/Grün → Auto-Publish** (sofort/zum Termin); unklassifizierte PMs bleiben als Fallback in der manuellen Queue | | Logging der KI-Antworten | **umgesetzt** — `ki_audits`-Tabelle (append-only, inkl. Provider/Modell/Begründung/Raw-Response) | | Content-Score 0–100 → Stufe | **umgesetzt** — `content_score`/`content_tier` (`ScorePressRelease`-Job), Editor-Panel, Admin-Badges, öffentliches Stufen-Badge in Customer-Show | | Re-Klassifikation bei Änderung | **umgesetzt** — `reclassifyIfClassified()`/`rescoreIfScored()` bei Titel-/Text-Änderung (Customer, Admin, API) | | Admin-On-Demand-Prüfung | **umgesetzt** — „Prüfung"-Button + Modal im Admin-Editor (Re-Check ohne Statusänderung) | | API-Absicherung | **umgesetzt** — API kann `status` nicht mehr setzen; eigene Submit-Route läuft durch denselben Funnel | | Trust-Score | **fehlt** (Phase 3 / KI-Plan Phase 6) | | Blacklist-Wort-Check | **vorhanden** als synchroner Hard-Filter vor der KI-Klassifikation | **Bewertung**: ✅ — Kern-Pipeline produktionsbereit. ⚠️ Betriebs-Voraussetzung: Queue-Worker für `classification` in Produktion (Test-Drain: `php artisan classification:work`). 📝 verbleibend: Trust-Score, Live-Update des Ergebnisses in der UI (aktuell erst nach Reload sichtbar), Stufen-Badges im öffentlichen Web-Frontend. ### 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`; auf **ein Titelbild pro PM** begrenzt, Cover-Variante 1280×580, Original wird nach Variantenerzeugung gelöscht (Stock/KI weiterhin offen) | | Pflichtfelder (Urheber, Lizenztyp, Lizenz-URL, Personen-Einwilligung, Rechte-Bestätigung) | umgesetzt (Phase 8H, erweitert 10./11.06. nach `Lizenztyp Bildupload.md`) — `author`, `license_type` (7 Typen, `App\Enums\ImageLicenseType`), `license_detail`, `license_url` (bedingt Pflicht), `source_url`, `people_rights_status`, `property_rights_status`, `rights_notes`, `rights_confirmed_at`; Risikohinweise bei unklaren Lizenzfällen | | 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 | umgesetzt (Phase 8F/8G) — zentrales Set in `public/images/press-release-placeholders/`, `App\Enums\PressReleasePlaceholder`, `PressReleaseCoverImage`-Resolver, Hero in Customer-/Admin-Show | **Bewertung**: ✅ für Lizenzfelder + SVG-Platzhalter (Phase 8). 📝 verbleibend: Stock-/KI-Quellen, Wasserzeichen-Check (Phase 2/3). ### 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. ### 3.4 Magic-Link-Flow für Pressekontakte **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 **Verbindlicher Konzept-Stand**: [`Decision-Update Preisstruktur & Veröffentlichungs-Flow.md`](./Decision-Update%20Preisstruktur%20&%20Ver%C3%B6ffentlichungs-Flow.md) (11.06.2026 — überschreibt §8–10 in `Konzept-Update 1` und im Relaunch-Konzept). | Punkt (laut Decision-Update) | Code-Stand | |---|---| | Tarif-Raster Starter/Business/Pro/Agency (29/49/99/199 €, 3/10/25/60 PMs) | **nicht im Datenmodell** | | Einzel-PM 19 € (No-Abo-Block) + Einzel→Abo-Brücke | **fehlt** | | Zahlung/Checkout (Stripe) | **Backend umgesetzt** (Phase 9E) — Checkout-Routen, Webhooks, STR-Spiegelung; UI folgt mit 9F | | Slot-Verbrauch **bei Veröffentlichung** (Rot = kein Slot) | **umgesetzt** (Phase 9B) — zählt idempotent beim ersten `published`-Übergang; Einreichen erfordert freien Slot, verbraucht aber keinen | | Submit-Gate: „Zur Prüfung einreichen" gegated hinter Buchung | **vorbereitet** (Phase 9C) — `User::hasActiveBooking()`-Stub hinter `billing.enforce_booking` (Default aus), Modal-Hinweis + Server-Guard + API 402; echte Buchungs-Prüfung seit 9D/9E (Abo ∨ Einmalkauf ∨ Legacy-Vereinbarung) | | Tageslimit (Business 2 / Pro 3 / Agency 5) | **fehlt** | | Launch-Credits: Extra-PM, Boost (nur grün), Veröffentlichungsnachweis-PDF | **fehlt** | | Jahrespreis als „2 Monate gratis" | Kommunikations-Regel, greift mit Tarif-UI | | `user_payment_options`-Tabelle | **vorhanden** (Pivot zu Companies da, aber kein aktiver Flow) | **Bewertung**: 📝 — der **Launch-Block** und damit das größte ungebaute Feature. Vorhandene Anschlusspunkte: Plan-Kontingent (`pressReleaseQuotaRemaining()`, null = unbegrenzt/Bestandsschutz), Veröffentlichungs-Modal (zeigt Kontingent), KI-Klassifikation (liefert das Rot/Gelb/Grün für den Slot-Verbrauch). Bewusst **nicht** zum Launch: Re-Check-Loop, Vorab-Prüfung, Prüfzähler (alles Phase 2, siehe Decision-Update §7). ### 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 | |---|---| | Content-Score 0–100 → Stufe (Standard/Geprüft/Hochwertig) | **umgesetzt** (KI-Plan Phase 5) — `content_score`/`content_tier`, Schwellen kalibrierbar in `config/scoring.php` (Geprüft ≥ 60, Hochwertig ≥ 80) | | Stufen-Badges im Backend + Customer-Ansicht | **umgesetzt** (Standard wird laut Konzept nicht beworben) | | Stufen-Badges im öffentlichen Web-Frontend | **fehlt** (Folgearbeit) | | Trust-Score (User-/Firmen-Ebene) | **fehlt** (Phase 3 / KI-Plan Phase 6) | | Auto-Publishing in Abhängigkeit vom Score | Klassifikations-basiert umgesetzt (Grün → Auto-Publish); Trust-Score-Lockerung fehlt | | Boost-Eligibilität nach Stufe | **fehlt** — zum Launch gilt laut Decision-Update: Boost nur für **grüne** PMs, Score-Feinstufung ist Phase 2 | **Bewertung**: ✅ Content-Score-Kern da; 📝 Trust-Score + öffentliche Badges + Boost-Stufung. --- ## 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; publiziert seit der KI-Anbindung nur noch **grün klassifizierte** fällige PMs | Im Konzept als „automatische Veröffentlichung zum geplanten Termin" hinzufügen | | Zeitzonen-Handling für geplante Termine | `PressRelease::DISPLAY_TIMEZONE` (Europe/Berlin), `scheduledAtLocal()`/`embargoAtLocal()`; Eingabe Berlin, Speicherung UTC | dokumentiert in `Umsetzung Pressemitteilung Bearbeitung Titelbild Veroeffentlichung.md`; `published_at`/`created_at` weiterhin UTC-Anzeige (Folgeschritt) | | Monatlicher Quota-Reset | `press-releases:reset-monthly-quota` (Scheduler, 1. des Monats) | Setzt den Plan-Kontingent-Zähler zurück (seit 9E) | | 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 0–7) | 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 | Status | |---|---|---| | Customer-Show zeigt weder `subtitle` noch `scheduled_at`/`embargo_at`/`boilerplate_override` | `customer/press-releases/show.blade.php` | ✅ erledigt (8A) | | Admin-Show zeigt weder `subtitle` noch `boilerplate_override` | `admin/press-releases/show.blade.php` | ✅ erledigt (8A) | | Liste-Indikator für Scheduling/Embargo | `customer/press-releases/index.blade.php`, `admin/press-releases/index.blade.php` | ✅ erledigt (8B) | | Pressekontakt-Sidebar zeigt keine Warn-Box, wenn kein Kontakt gewählt | `customer/press-releases/create.blade.php`, `edit.blade.php` | ✅ erledigt (8C) | | Anhang-Tests laufen ins Leere | `tests/Feature/PressReleaseAttachmentsManagerTest.php`, Teile von `PressReleasePhase7SchemaTest.php` | ✅ via `->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 | offen → wird im Phase-8-Abschluss (8K) als `20-PHASE-8-…md` dokumentiert | --- ## 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 6. Neuer Abschnitt im `Admin-User.md`: „Titelbild & SVG-Platzhalter". 7. Neuer Abschnitt im `Presseportal – Konzept für Relaunch.md`: „Veröffentlichungs-Modal & Quota-Kommunikation". 8. 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) 9. Magic-Link-Flow für Pressekontakte → eigenes Doku-Kapitel, sobald gebaut. 10. 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) |