- Neues Dokument docs/user-admin/Billing-und-Rechnungskreise.md: hybride Rechnungskreise (STR-/MAN-/Archiv), Tarif-Datenmodell, MAN-Faelligkeitslauf, USt-Regeln, Befehle/Scheduler, Konfiguration (billing.php + Cashier-ENV) und offene Punkte - README-Index + STATUS-ABGLEICH (Finanzen-Sektion) aktualisiert - PROGRESS-Eintrag Phase 9D (Datenmodell, Rechnungskreise, Grandfather-Migration, USt) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
23 KiB
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)
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 indocs/user-admin/unddocs/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 | 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 |
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.
| 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 | in Arbeit (Phase 9E) | 📝 |
| 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
(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) | fehlt |
| 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 kommt mit 9D/9E |
| 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: Quota-Stub (users.press_release_quota,
pressReleaseQuotaRemaining()), 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) |
Stub — wird vom Tarif-Modul (Decision-Update) abgelöst |
| 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
- In
Admin-User.mdergänzen: „PMs unterstützen Untertitel, Scheduling und Embargo seit Phase 7". - In
Presseportal – Konzept für Relaunch.mdAbschnitt 1: aktuellen Blacklist-Stand notieren („KI-Vorprüfung folgt; aktuell wird per Blacklist gegen offensichtliche Verstöße geprüft"). - In
Presseportal – Konzept für Relaunch.mdAbschnitt 2: hinzufügen, dass Bilder aktuell nur als „Eigenes Bild" hochgeladen werden können, Stock- und KI-Quellen folgen. - In
Presseportal – Konzept für Relaunch.mdAbschnitt 4: notieren, dass Tombstone-Variante rudimentär da ist (deleteFromAdmin-Ersatztext), die Korrektur-/Update-Hinweise aber noch fehlen. - In
checkliste-user-backend.mdneuen Block „Phase 7" hinzufügen mit Verweis aufdev/frontend/hub-flux/19-PHASE-7-PRESS-RELEASE-FORM.md.
6.2 Mit Phase 8 ergänzen
- Neuer Abschnitt im
Admin-User.md: „Titelbild & SVG-Platzhalter". - Neuer Abschnitt im
Presseportal – Konzept für Relaunch.md: „Veröffentlichungs-Modal & Quota-Kommunikation". - Aktualisierung der Firmen-Liste-Doku im
Admin-User.mdmit den neuen UI-Bausteinen (Counter-Strip, Saved-Views, Filter-Chips, Card/List-Toggle, Rollen-Legende).
6.3 Längerfristig (Phase 2/3)
- Magic-Link-Flow für Pressekontakte → eigenes Doku-Kapitel, sobald gebaut.
- 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) |