Lang-Dateien (Kontaktformular, Impressum, Datenschutz, de/en), Support-Link im Partnerportal, WhatsApp-Schreibweise und Platzhalter im Admin. ContactDetailsSeeder ersetzt die alten Werte in den gespeicherten CMS-Einträgen (beide Sprachen), Marken und Magazin; Display-Folien und Info-Tablet (CABINET-Showroom) bleiben unberührt. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
72 lines
2.7 KiB
PHP
72 lines
2.7 KiB
PHP
<?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,
|
||
BrandTranslationsSeeder::class,
|
||
ContactDetailsSeeder::class,
|
||
// Zuletzt: fehlende Felder ergänzen, verwendete Bilder in die Mediathek.
|
||
CmsSectionFieldsSeeder::class,
|
||
AssetMediaImportSeeder::class,
|
||
];
|
||
|
||
public function run(): void
|
||
{
|
||
$this->call(self::STEPS);
|
||
}
|
||
}
|