b2in/database/seeders/WhatsappNumberSeeder.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

83 lines
2.8 KiB
PHP

<?php
namespace Database\Seeders;
use FluxCms\Core\Models\CmsContent;
use FluxCms\Core\Services\CmsContentService;
use Illuminate\Database\Seeder;
/**
* Hinterlegt die WhatsApp-Business-Nummer des Stores (Abstimmung 23.09.2026, Nachtrag 18).
*
* Der WhatsApp-Button im Terminanfrage-Widget liest `global.contact.whatsapp`. Auf der Vorschau
* stand dort der Platzhalter „+49 151 00000000“ aus der ersten Einrichtung, danach kurz die
* falsche Nummer vom 23.09. Der Seeder trägt die echte Nummer ein, wenn das Feld leer ist oder
* einen dieser beiden Werte enthält; eine im Admin gepflegte andere Nummer bleibt stehen. Fehlt der Eintrag `global.contact` ganz, wird er
* angelegt. Mehrfaches Ausführen ist unbedenklich.
*
* php artisan db:seed --class=WhatsappNumberSeeder
*/
class WhatsappNumberSeeder extends Seeder
{
/** Business-Nummer laut Marcel (0521-98620100, korrigiert am 24.09.), international geschrieben. */
public const NUMBER = '+49 521 98620100';
/**
* Werte, die der Seeder ersetzt: der Platzhalter aus der ersten Einrichtung und die am 23.09.
* versehentlich eingetragene falsche Nummer (Zahlendreher in der Zulieferung).
*
* @var array<int, string>
*/
private const PLACEHOLDERS = ['+49 151 00000000', '+49 521 98610020'];
/** @var array<int, string> */
private const LOCALES = ['de', 'en'];
public function run(): void
{
$row = CmsContent::query()->where('group', 'global')->where('key', 'contact')->first();
if (! $row) {
CmsContent::create([
'group' => 'global',
'key' => 'contact',
'type' => 'json',
'value' => array_fill_keys(self::LOCALES, ['whatsapp' => self::NUMBER]),
'order' => 0,
]);
app(CmsContentService::class)->clearCache('global');
$this->command?->info('WhatsApp-Nummer: Eintrag global.contact angelegt.');
return;
}
$value = $row->getTranslations('value');
$changed = 0;
foreach (self::LOCALES as $locale) {
$section = is_array($value[$locale] ?? null) ? $value[$locale] : [];
$current = trim((string) ($section['whatsapp'] ?? ''));
if ($current !== '' && ! in_array($current, self::PLACEHOLDERS, true)) {
continue;
}
$section['whatsapp'] = self::NUMBER;
$value[$locale] = $section;
$changed++;
}
if ($changed === 0) {
$this->command?->info('WhatsApp-Nummer: bereits gepflegt, nichts geändert.');
return;
}
$row->value = $value;
$row->save();
app(CmsContentService::class)->clearCache('global');
$this->command?->info("WhatsApp-Nummer gesetzt ({$changed} Sprache(n)).");
}
}