b2in/database/seeders/InteriorReleaseSeeder.php
Kevin Adametz 8ddc85422e Englische Fassung der Markenseiten: Merkmale, Leistungen, Abschnitte, Showroom, Bildunterschriften
Diese Markenfelder waren nur einsprachig gespeichert und erschienen auf der englischen Seite
deutsch. Neue Spalte cms_brands.field_translations (additiv) trägt die Übersetzungen je Sprache,
die bisherigen Spalten bleiben die deutsche Fassung; ohne Übersetzung gilt weiter Deutsch.
Marken-Editor bearbeitet die Felder über den DE/EN-Umschalter (Bilder und Rubriken bleiben
sprachübergreifend). BrandTranslationsSeeder spielt die englischen Texte der vier Kernmarken
ein, ohne gepflegte Übersetzungen zu überschreiben. php artisan cms:untranslated listet
Inhalte, die in einer Sprache noch fehlen oder deutsch sind.

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

71 lines
2.7 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,
BrandTranslationsSeeder::class,
// Zuletzt: fehlende Felder ergänzen, verwendete Bilder in die Mediathek.
CmsSectionFieldsSeeder::class,
AssetMediaImportSeeder::class,
];
public function run(): void
{
$this->call(self::STEPS);
}
}