- Hinweisleiste per B2IN_ANNOUNCEMENT_BAR ausgeblendet (Standard aus) - Hero: „Räume aus einer Hand.“ als neue Überschrift, zweiter Button entfernt - Projekttext mit zentralem deutschen Vertragspartner (Punkt statt Gedankenstrich) - Otterpohl als vierte Kernmarke: Text v2, Abschnitt „Montage“, Titelbild getauscht - Markenabschnitte: Absätze mit „- “ als Liste mit fetter Einleitung - Titelbilder und Galerien für CABINET, Rotpunkt, Febrü und Otterpohl (WebP) - Feedback 17.09. in den Markentexten, Demobilder entfernt, WhatsApp-Nummer - Palette „Modern“ fest ohne Schalter, Entwurf /entwurf mit Hero-Slideshow - Seeder-Liste fürs Deployment im Entwicklungsplan Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
70 lines
3 KiB
PHP
70 lines
3 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\CmsBrand;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
/**
|
||
* Demo-Galerien zum Ausprobieren der Marken-Detailseiten.
|
||
*
|
||
* NUR fuer lokale Tests. Bewusst NICHT in {@see DatabaseSeeder} registriert.
|
||
*
|
||
* ⚠️ Die verwendeten Bilder stammen aus dem Bestand der alten Dubai-Seite – es sind Stockmotive
|
||
* und KI-Renderings, kein einziges davon ist ein echtes CABINET-, Rotpunkt- oder Februe-Projekt.
|
||
* Der frueher vorangestellte Vermerk „BEISPIEL“ in den Bildunterschriften ist auf Kundenwunsch
|
||
* entfallen. Die Unterscheidung traegt jetzt allein die Kategorie (Badge „Realisiertes Projekt“
|
||
* bzw. „Visualisierung“) – die Motive der Kategorie `project` muessen deshalb vor dem Livegang
|
||
* durch echte Referenzen ersetzt werden. Steht als Punkt in der Deployment-Checkliste.
|
||
*
|
||
* Wieder entfernen – nur die Demobilder, gepflegte Bilder bleiben:
|
||
* php artisan db:seed --class=DemoBrandGalleryCleanupSeeder
|
||
*/
|
||
class DemoBrandGallerySeeder extends Seeder
|
||
{
|
||
/**
|
||
* Galerie je Marken-Slug: [Dateiname, Kategorie, Bildunterschrift].
|
||
*
|
||
* @var array<string, list<array{0: string, 1: string, 2: string}>>
|
||
*/
|
||
public const GALLERIES = [
|
||
'cabinet' => [
|
||
['b2a.webp', CmsBrand::GALLERY_PROJECT, 'Wohnwand mit Einbauregal, Bielefeld'],
|
||
['hero-room.webp', CmsBrand::GALLERY_PROJECT, 'Wohnbereich mit Raumteiler'],
|
||
['stileigentum.webp', CmsBrand::GALLERY_INSPIRATION, 'Entwurf Wohnzimmer mit Sideboard'],
|
||
['best-of-two-worlds.jpg', CmsBrand::GALLERY_INSPIRATION, 'Visualisierung offener Wohnraum'],
|
||
],
|
||
'rotpunkt' => [
|
||
['best-of-two-world.jpg', CmsBrand::GALLERY_PROJECT, 'Offener Wohn- und Kochbereich'],
|
||
['style2own.webp', CmsBrand::GALLERY_INSPIRATION, 'Entwurf heller Wohnbereich'],
|
||
['magazin-3.webp', CmsBrand::GALLERY_INSPIRATION, 'Visualisierung Wohnraum mit Ausblick'],
|
||
],
|
||
'februe' => [
|
||
['accommodation-2.webp', CmsBrand::GALLERY_PROJECT, 'Empfangsbereich eines Buerogebaeudes'],
|
||
['accommodation-1.webp', CmsBrand::GALLERY_PROJECT, 'Grossraumbuero mit Arbeitsplaetzen'],
|
||
['partner-hero.webp', CmsBrand::GALLERY_INSPIRATION, 'Entwurf Besprechungsbereich'],
|
||
['ecosystem-hero.webp', CmsBrand::GALLERY_INSPIRATION, 'Visualisierung Projektraum'],
|
||
],
|
||
];
|
||
|
||
public function run(): void
|
||
{
|
||
foreach (self::GALLERIES as $slug => $items) {
|
||
$brand = CmsBrand::query()->where('slug', $slug)->first();
|
||
|
||
if (! $brand) {
|
||
$this->command?->warn("Marke „{$slug}“ nicht gefunden – uebersprungen.");
|
||
|
||
continue;
|
||
}
|
||
|
||
$brand->gallery = CmsBrand::normalizeGallery(array_map(
|
||
fn (array $item) => ['image' => $item[0], 'category' => $item[1], 'caption' => $item[2]],
|
||
$items,
|
||
));
|
||
$brand->save();
|
||
|
||
$this->command?->info("Galerie fuer „{$brand->slug}“ gesetzt: ".count($brand->gallery).' Bilder.');
|
||
}
|
||
}
|
||
}
|