Phase 9 Block 1: Gelb-Routing Direkt-Live, Slot-Verbrauch bei Veroeffentlichung, Submit-Gate
9A — Gelb geht direkt live (Entscheidung 12.06.2026): - routeByClassification(): Gelb durchlaeuft denselben Auto-Publish-Pfad wie Gruen (autoPublishApproved); nur Rot wird abgelehnt - Scheduler publiziert faellige gelbe + gruene PMs; unklassifizierte bleiben als Fallback in der manuellen Queue 9B — Slot-Verbrauch bei Veroeffentlichung (Decision-Update 3.2): - Increment aus submitForReview() entfernt; publish() und changeStatusFromAdmin() zaehlen idempotent beim ersten published-Uebergang (Pruefung ueber Status-Logs); Rot kostet nichts - Submit-Guard: Einreichen erfordert freien Slot (QuotaExceededException, API 422) 9C — Submit-Gate vorbereitet (Decision-Update 5.1): - User::hasActiveBooking()-Stub hinter config/billing.php (enforce_booking, Default aus); Tarif-Modul ersetzt nur den Rumpf - Einreichungs-Modal zeigt ohne Buchung einen Buchungs-Hinweis; Server-Guard (BookingRequiredException), API antwortet 402 - Fix: Customer-Create legte PMs bei "Zur Pruefung senden" direkt mit Status review an (vorbei an Blacklist/Quota/KI/Status-Log) — laeuft jetzt immer ueber submitForReview() Suite: 451 passed, 4 skipped (9 neue Tests). Pint clean. Plan: docs/PHASE-9-FLOW-UND-TARIFE-PLAN.md (Block 2 nach Review-Stopp). Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
8d8d957884
commit
4419d9ff43
21 changed files with 551 additions and 114 deletions
|
|
@ -5,6 +5,48 @@
|
|||
|
||||
---
|
||||
|
||||
## 2026-06-12 · Phase 9 · Veröffentlichungs-Flow Block 1 (9A–9C) ✅
|
||||
|
||||
Plan-Doc: `docs/PHASE-9-FLOW-UND-TARIFE-PLAN.md`. Grundlage:
|
||||
`docs/Decision-Update Preisstruktur & Veröffentlichungs-Flow.md`
|
||||
(+ Entscheidung 12.06.: Gelb geht direkt live).
|
||||
|
||||
Vorab Block 0: Repo aufgeräumt (3 Artefakt-Dateien im Root entfernt),
|
||||
der unkommittierte Stand vom 29.05.–11.06. in drei Commits gesichert
|
||||
(Vite/Multi-Domain-Infra, User-Panel/KI-Pipeline, Doku-Sync).
|
||||
|
||||
**9A — Gelb-Routing Direkt-Live**
|
||||
- `routeByClassification()`: Gelb durchläuft denselben Auto-Publish-Pfad
|
||||
wie Grün (`autoPublishApproved()`); nur Rot wird abgelehnt.
|
||||
- Scheduler publiziert fällige gelbe + grüne PMs; unklassifizierte
|
||||
bleiben als Fallback in der manuellen Queue.
|
||||
|
||||
**9B — Slot-Verbrauch bei Veröffentlichung**
|
||||
- Increment aus `submitForReview()` entfernt; `publish()` und
|
||||
`changeStatusFromAdmin()` zählen idempotent beim ersten
|
||||
`published`-Übergang (Prüfung über Status-Logs). Rot kostet nichts.
|
||||
- Submit-Guard: Einreichen erfordert freien Slot
|
||||
(`QuotaExceededException`, API 422).
|
||||
|
||||
**9C — Submit-Gate + Funnel-Fix**
|
||||
- `User::hasActiveBooking()`-Stub hinter `config/billing.php`
|
||||
(`enforce_booking`, Default aus) — Tarif-Modul ersetzt nur den Rumpf.
|
||||
- Einreichungs-Modal zeigt ohne Buchung einen Buchungs-Hinweis mit
|
||||
CTA zur Buchungs-Seite; Server-Guard (`BookingRequiredException`),
|
||||
API antwortet 402.
|
||||
- **Befund + Fix**: Customer-Create legte PMs bei „Zur Prüfung senden"
|
||||
direkt mit Status `review` an — vorbei an Blacklist, Quota, KI und
|
||||
Status-Log. Jetzt: immer Draft anlegen, dann `submitForReview()`.
|
||||
|
||||
**Verifikation**: Suite 451 passed / 4 skipped (9 neue Tests:
|
||||
Quota-Semantik, Gelb-Routing, Gate via Service/API/Modal). Pint clean.
|
||||
|
||||
Nächster Schritt: Review-Stopp, dann Block 2 (9D–9J: Tarif-Datenmodell,
|
||||
Stripe/Cashier — Dependency-Freigabe nötig, Tarif-UI, Tageslimit,
|
||||
Einzel-PM, Launch-Credits).
|
||||
|
||||
---
|
||||
|
||||
## 2026-05-29 · Phase 8 · User-Panel-Konsolidierung abgeschlossen (8F–8K) ✅
|
||||
|
||||
Abschluss von Phase 8. Die erste Hälfte (8A–8E: Show-Page-Lücken,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue