companies:retire-agency-type: Firmen-Typ „Agentur" abschaffen

A4 des Umbaus Agentur-Attribution → User-Profil: Agentur-Firmen mit
PMs oder Pressekontakten werden zu type=company umtypisiert (sie sind
faktisch Newsrooms), leere Agentur-Firmen soft-gelöscht. Geschützt vor
Löschung (nur Umtypisierung): Mitgliedschaften Dritter in company_user
oder Verknüpfungen in user_payment_option_company. --dry-run +
JSON-Report; im Deploy-Runbook nach legacy:migrate-agency-names
eingereiht.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
Kevin Adametz 2026-07-08 09:33:39 +00:00
parent 56fe5ea6f4
commit 0b3c6ccac9
3 changed files with 252 additions and 4 deletions

View file

@ -130,10 +130,13 @@ Events: die Cashier-Defaults (Subscriptions, Invoices, Payment-Intents).
`legacy:import` → `legacy:fix-timestamps` → `legacy:migrate-media`
(bzw. `legacy:sync-company-logos` / `legacy:sync-press-release-images`)
→ `legacy:archive-invoices` → `legacy:grandfather-subscriptions`.
2. Agentur-Attribution (läuft NACH dem Firmen-/User-Import aus Schritt 1):
`legacy:migrate-agency-names` — erst mit `--dry-run` (Report unter
`storage/app/private/migration/` prüfen, insbes. Mehrfach-Namen und
Owner-lose Agentur-Firmen), dann scharf. Nie überschreibend.
2. Agentur-Attribution (läuft NACH dem Firmen-/User-Import aus Schritt 1,
Reihenfolge beachten): `legacy:migrate-agency-names` →
`companies:retire-agency-type`. Beide erst mit `--dry-run` (Reports unter
`storage/app/private/migration/` prüfen, insbes. Mehrfach-Namen,
Owner-lose Agentur-Firmen und geschützte Fälle), dann scharf.
Namen werden nie überschrieben; gelöscht wird nur soft und nur ohne
PMs/Kontakte/Dritt-Mitgliedschaften/Zahlungsoptions-Verknüpfung.
3. Ersten Admin-User anlegen (Prod hat keine Demo-User):
Registrierung + Rolle via Tinker/DB oder dedizierter Befehl.
4. Favicons je Domain deployen (Platzhalter-Generator reicht nicht) [EXTERN R5.4].