b2in/database/seeders/BrandOriginSeeder.php
Kevin Adametz 4b07bbdcae Startseite ruhiger, Otterpohl mit Montage, Marken-Bilder und Farbwelt-Entwurf
- 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>
2026-10-01 10:34:21 +00:00

87 lines
3.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 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}.");
}
}