WIP-Schnappschuss vor Migration 2026-09-28 (uncommittete Änderungen von feature/b2in-interior)

This commit is contained in:
Kevin Adametz 2026-09-28 15:46:34 +02:00
parent 3211569fee
commit 268a1f5f54
114 changed files with 3126 additions and 470 deletions

View file

@ -0,0 +1,52 @@
<?php
namespace Database\Seeders;
use App\Models\CmsBrand;
use Illuminate\Database\Seeder;
/**
* Entfernt die Demobilder aus den Markengalerien (Nachtrag 17).
*
* {@see DemoBrandGallerySeeder} hatte Stockmotive und KI-Renderings der alten Dubai-Seite als
* Beispiele in die Galerien von CABINET, Rotpunkt und Febrü gelegt. Seit den echten Bildern
* (Nachtrag 16) sollen sie weg. Erkannt werden sie am Dateinamen aus dem Demo-Seeder – nicht an
* der Bildunterschrift, denn den Vermerk „BEISPIEL“ hat {@see BrandGalleryCaptionNormalizerSeeder}
* auf der Vorschau bereits entfernt. Alle anderen Galeriebilder bleiben samt Kategorie,
* Unterschrift und Reihenfolge. Mehrfaches Ausführen ist unbedenklich.
*
* php artisan db:seed --class=DemoBrandGalleryCleanupSeeder
*/
class DemoBrandGalleryCleanupSeeder extends Seeder
{
public function run(): void
{
$demoImages = [];
foreach (DemoBrandGallerySeeder::GALLERIES as $items) {
foreach ($items as $item) {
$demoImages[] = $item[0];
}
}
$removed = 0;
foreach (CmsBrand::query()->whereNotNull('gallery')->get() as $brand) {
$gallery = CmsBrand::normalizeGallery($brand->gallery);
$kept = array_values(array_filter(
$gallery,
fn (array $item) => ! in_array($item['image'], $demoImages, true),
));
if (count($kept) === count($gallery)) {
continue;
}
$removed += count($gallery) - count($kept);
$brand->gallery = $kept;
$brand->save();
}
$this->command?->info("Demobilder aus den Galerien entfernt: {$removed}.");
}
}