- 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>
87 lines
3.6 KiB
PHP
87 lines
3.6 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\CmsBrand;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
/**
|
||
* Trägt den Fertigungsort der Kernmarken nach (Nachtrag 11 zu Arbeitsplan 14.09.2026, Punkt 1.3).
|
||
*
|
||
* Die Herkunfts-Sektion „Aus der Region gefertigt“ liest Ort, Entfernung und Rolle aus der
|
||
* Marke. {@see CmsBrandSeeder} bringt dieselben Werte für frische Installationen mit,
|
||
* überspringt aber bereits angelegte Marken. Dieser Seeder fasst nur die drei Felder an und
|
||
* auch nur bei Marken, deren Fertigungsort noch leer ist – ein im Admin eingetragener Ort
|
||
* bleibt stehen. Mehrfaches Ausführen ist unbedenklich.
|
||
*
|
||
* Entfernungen gerundet, Straße ab Bielefeld Mitte. ⚠️ Rolle CABINET nach Kevins Verständnis
|
||
* (Fertigung Köln, Beratung im Store Bielefeld) – von Marcel bestätigen lassen.
|
||
*
|
||
* php artisan db:seed --class=BrandOriginSeeder
|
||
*/
|
||
class BrandOriginSeeder extends Seeder
|
||
{
|
||
/** @var array<string, array{origin_city: array<string, string>, origin_distance: array<string, string>, origin_role: array<string, string>}> */
|
||
private const ORIGINS = [
|
||
'cabinet' => [
|
||
'origin_city' => ['de' => 'Köln', 'en' => 'Cologne'],
|
||
'origin_distance' => ['de' => 'rund 200 km', 'en' => 'about 200 km'],
|
||
'origin_role' => [
|
||
'de' => 'Gefertigt in der Kölner Manufaktur, beraten und geplant im CABINET Store Bielefeld.',
|
||
'en' => 'Made in the Cologne manufactory, advised and planned at the CABINET Store Bielefeld.',
|
||
],
|
||
],
|
||
'rotpunkt' => [
|
||
'origin_city' => ['de' => 'Bünde', 'en' => 'Bünde'],
|
||
'origin_distance' => ['de' => 'rund 30 km', 'en' => 'about 30 km'],
|
||
'origin_role' => [
|
||
'de' => 'Küchen aus eigener Fertigung in Bünde – geplant bei uns im Küchenstudio.',
|
||
'en' => 'Kitchens from their own production in Bünde – planned with us in the kitchen studio.',
|
||
],
|
||
],
|
||
'februe' => [
|
||
'origin_city' => ['de' => 'Herford', 'en' => 'Herford'],
|
||
'origin_distance' => ['de' => 'rund 20 km', 'en' => 'about 20 km'],
|
||
'origin_role' => [
|
||
'de' => 'Büro- und Objektmöbel aus eigener Fertigung in Herford.',
|
||
'en' => 'Office and contract furniture from their own production in Herford.',
|
||
],
|
||
],
|
||
'tischlerei' => [
|
||
'origin_city' => ['de' => 'Rheda-Wiedenbrück', 'en' => 'Rheda-Wiedenbrück'],
|
||
'origin_distance' => ['de' => 'rund 35 km', 'en' => 'about 35 km'],
|
||
'origin_role' => [
|
||
'de' => 'Tischlerei und Innenausbau aus Rheda-Wiedenbrück – vom einzelnen Möbel bis zum ganzen Raum, inklusive Montage.',
|
||
'en' => 'Joinery and interior fit-out from Rheda-Wiedenbrück – from a single piece to the whole room, installation included.',
|
||
],
|
||
],
|
||
];
|
||
|
||
public function run(): void
|
||
{
|
||
$set = 0;
|
||
$kept = 0;
|
||
|
||
foreach (self::ORIGINS as $slug => $origin) {
|
||
$brand = CmsBrand::query()->where('slug', $slug)->first();
|
||
|
||
if (! $brand) {
|
||
$this->command?->warn("Marke „{$slug}“ nicht gefunden – übersprungen.");
|
||
|
||
continue;
|
||
}
|
||
|
||
if (trim((string) $brand->getTranslation('origin_city', 'de', false)) !== '') {
|
||
$kept++;
|
||
|
||
continue;
|
||
}
|
||
|
||
$brand->fill($origin);
|
||
$brand->save();
|
||
$set++;
|
||
}
|
||
|
||
$this->command?->info("Fertigungsorte gesetzt: {$set}, vorhandene behalten: {$kept}.");
|
||
}
|
||
}
|