b2in/database/seeders/InteriorReleaseSeeder.php
Kevin Adametz dc31cdb401 FAQ im Inhalte-Editor vollständig bearbeitbar: Bereich je Frage statt verschachtelter sections
Die Bereiche der FAQ-Seite lagen als verschachtelte Listen in sections, der Editor zeigte
davon nur JSON-Text. Jetzt stehen alle Fragen in questions mit dem Feld category, Überschrift
und Symbol der Bereiche in categories. FAQ::groups baut daraus die Seite (allgemeine Fragen
zuerst), alte Einträge werden weiter dargestellt. FaqCategoriesSeeder stellt gespeicherte
Einträge um (FAQ und Immobilien-FAQ), Texte bleiben.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 09:50:44 +00:00

70 lines
2.6 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
/**
* Alle Inhaltsschritte des Interior-Relaunchs in einem Lauf (08.10.2026).
*
* Bringt eine Datenbank mit dem alten Website-Stand auf den Stand der Vorschau: zuerst auf der
* Vorschau mit frischer Kopie der Live-Datenbank (Generalprobe), nach der Freigabe identisch auf
* Live. Displays, Playlists, Display-Mediathek und hochgeladene Medien bleiben, wie sie sind –
* angefasst werden nur das Display-Branding (nur Module ohne Interior-Logo) und absolute
* Medien-URLs (werden host-unabhängig).
*
* Reihenfolge wie Abschnitt 8.2 und „Seeder für das nächste Deployment“ im Entwicklungsplan.
* Jeder Schritt ist idempotent, ein zweiter Lauf ändert nichts mehr. Ausgeführt von
* `dev/betrieb/deploy.sh vX.Y.Z --migrations --seed=InteriorReleaseSeeder` im Wartungsmodus.
*
* php artisan db:seed --class=InteriorReleaseSeeder --force
*/
class InteriorReleaseSeeder extends Seeder
{
/**
* @var list<class-string<Seeder>>
*/
public const STEPS = [
// Fehlende CMS-Einträge aus den Lang-Dateien anlegen – vorhandene bleiben unberührt.
CmsContentSeeder::class,
CmsBrandSeeder::class,
// Die in AP1 neu getexteten Sektionen überschreiben (alter Website-Stand).
InteriorRelaunchCmsSeeder::class,
CmsArticleSeeder::class,
// Displays: nur Branding und Medien-URLs.
DisplayInteriorBrandingSeeder::class,
DisplayMediaUrlNormalizerSeeder::class,
// Marken
BrandPageTextSeeder::class,
BrandGalleryCaptionNormalizerSeeder::class,
WorldSplitCmsSeeder::class,
OriginSectionCmsSeeder::class,
BrandOriginSeeder::class,
OtterpohlBrandSeeder::class,
BrandImageSeeder::class,
DemoBrandGalleryCleanupSeeder::class,
// Texte und Korrekturen
WhatsappNumberSeeder::class,
AudienceSwitchProjectTextSeeder::class,
HomeHeroTextSeeder::class,
UnusedCmsContentCleanupSeeder::class,
AboutPageTextSeeder::class,
ProofreadingCorrectionsSeeder::class,
LegalTextUpdateSeeder::class,
ReferencesPageSwitchSeeder::class,
HomeHeroSlidesSeeder::class,
PageHeroEyebrowSeeder::class,
HeroTrustItemsSeeder::class,
HomeVisionTitleSeeder::class,
ContentCorrections20261008Seeder::class,
FaqCategoriesSeeder::class,
// Zuletzt: fehlende Felder ergänzen, verwendete Bilder in die Mediathek.
CmsSectionFieldsSeeder::class,
AssetMediaImportSeeder::class,
];
public function run(): void
{
$this->call(self::STEPS);
}
}