Nachtrag 11: Herkunfts-Sektion liest Ort, Entfernung und Rolle aus der Markenverwaltung (drei neue Felder an cms_brands, BrandOriginSeeder), Kartenpositionen im Code, „Marken“ in der Sidebar. Nachtrag 12: Inhalte-Editor zeigt die Seiten der Website mit ihren Sektionen in Reihenfolge (config/cms_pages.php, CmsPageTree), Felder in Klartext, fehlende Sektionen aus der Sprachdatei anlegbar, Vorschau der echten Seite im iframe mit Sprung zur Sektion; Anker an allen lebenden Sektionen nachgezogen. Nachtrag 13: Referenzen als eigenes Modul (CmsReference, Portal-Seite, /referenzen mit Fallback auf die Markengalerien); Immobilien-Projekte aus Sidebar und CMS-Übersicht genommen, Route bleibt. Dazu .gitignore für _b2in_interior_shop/ und docs/. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
87 lines
3.5 KiB
PHP
87 lines
3.5 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' => 'Unsere Werkstatt für Aufbau, Sonderlösungen und Veredelung.',
|
||
'en' => 'Our workshop for assembly, custom solutions and finishing.',
|
||
],
|
||
],
|
||
];
|
||
|
||
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}.");
|
||
}
|
||
}
|