291 lines
11 KiB
PHP
291 lines
11 KiB
PHP
<?php
|
||
|
||
namespace Database\Seeders;
|
||
|
||
use App\Models\Display;
|
||
use App\Models\DisplayVersion;
|
||
use App\Models\DisplayVersionItem;
|
||
use Illuminate\Database\Seeder;
|
||
|
||
class DisplayVersionSeeder extends Seeder
|
||
{
|
||
/**
|
||
* Seed display versions, items, and displays with example data.
|
||
*/
|
||
public function run(): void
|
||
{
|
||
// ========================================
|
||
// 1. Video-Display Version
|
||
// ========================================
|
||
$videoVersion = DisplayVersion::create([
|
||
'name' => 'Schaufenster Video',
|
||
'type' => 'video-display',
|
||
'settings' => [],
|
||
'is_active' => true,
|
||
]);
|
||
|
||
$videos = [
|
||
['filename' => 'herbst_2025.mp4', 'title' => 'Herbst Kollektion 2025', 'position' => 25],
|
||
['filename' => 'fruehjahr_2025.mp4', 'title' => 'Frühjahr Kollektion 2025', 'position' => 30],
|
||
['filename' => 'herbst_2024.mp4', 'title' => 'Herbst Kollektion 2024', 'position' => 25],
|
||
['filename' => 'fruehjahr_2024.mp4', 'title' => 'Frühjahr Kollektion 2024', 'position' => 25],
|
||
];
|
||
|
||
foreach ($videos as $i => $video) {
|
||
DisplayVersionItem::create([
|
||
'display_version_id' => $videoVersion->id,
|
||
'item_type' => 'video',
|
||
'content' => $video,
|
||
'sort_order' => $i,
|
||
'is_active' => true,
|
||
]);
|
||
}
|
||
|
||
$footers = [
|
||
['headline' => 'Beratung & Termin', 'subline' => 'Jetzt Termin vereinbaren.', 'url' => 'https://b2in.de/termin'],
|
||
['headline' => 'Neue Kollektion', 'subline' => 'Entdecken Sie die aktuellen Trends.', 'url' => null],
|
||
];
|
||
|
||
foreach ($footers as $i => $footer) {
|
||
DisplayVersionItem::create([
|
||
'display_version_id' => $videoVersion->id,
|
||
'item_type' => 'footer',
|
||
'content' => $footer,
|
||
'sort_order' => $i,
|
||
'is_active' => true,
|
||
]);
|
||
}
|
||
|
||
// ========================================
|
||
// 2. B2in Version (Dark)
|
||
// ========================================
|
||
$b2inDark = DisplayVersion::create([
|
||
'name' => 'B2in Immobilien Dark',
|
||
'type' => 'b2in',
|
||
'settings' => [
|
||
'theme' => 'dark',
|
||
'footer_name' => 'Marcel Scheibe',
|
||
'footer_url' => 'b2in.de',
|
||
'transition' => ['type' => 'crossfade', 'duration_ms' => 800],
|
||
'default_image_duration' => 10,
|
||
'rotation_weights' => ['immobilien' => 70, 'moebel' => 30],
|
||
'display_active' => true,
|
||
],
|
||
'is_active' => true,
|
||
]);
|
||
|
||
$b2inItems = [
|
||
[
|
||
'category' => 'immobilien',
|
||
'media_type' => 'video',
|
||
'media_url' => '../assets/334716_medium.mp4',
|
||
'headline' => 'Internationale Immobilien — Ihr Einstieg.',
|
||
'subline' => 'Beratung, Begleitung und Vermittlung. Persönlich. Transparent.',
|
||
'duration_seconds' => 10,
|
||
],
|
||
[
|
||
'category' => 'immobilien',
|
||
'media_type' => 'video',
|
||
'media_url' => '../assets/48504-454713939_medium.mp4',
|
||
'headline' => 'Ihr Zuhause. Weltweit.',
|
||
'subline' => 'Von Dubai bis Europa – wir finden Ihre Immobilie.',
|
||
'duration_seconds' => 10,
|
||
],
|
||
[
|
||
'category' => 'moebel',
|
||
'media_type' => 'image',
|
||
'media_url' => 'https://images.unsplash.com/photo-1618221195710-dd6b41faaea6?w=1920&h=1080&fit=crop',
|
||
'headline' => 'Exklusive Einrichtung — Lokal. Für Sie.',
|
||
'subline' => 'Kuratierte Möbelkonzepte von lokalen Fachhändlern.',
|
||
'duration_seconds' => 10,
|
||
],
|
||
];
|
||
|
||
foreach ($b2inItems as $i => $item) {
|
||
DisplayVersionItem::create([
|
||
'display_version_id' => $b2inDark->id,
|
||
'item_type' => 'media',
|
||
'content' => $item,
|
||
'sort_order' => $i,
|
||
'is_active' => true,
|
||
]);
|
||
}
|
||
|
||
// ========================================
|
||
// 3. B2in Version (Light)
|
||
// ========================================
|
||
$b2inLight = DisplayVersion::create([
|
||
'name' => 'B2in Immobilien Light',
|
||
'type' => 'b2in',
|
||
'settings' => [
|
||
'theme' => 'light',
|
||
'footer_name' => 'Marcel Scheibe',
|
||
'footer_url' => 'b2in.de',
|
||
'transition' => ['type' => 'crossfade', 'duration_ms' => 800],
|
||
'default_image_duration' => 10,
|
||
'rotation_weights' => ['immobilien' => 70, 'moebel' => 30],
|
||
'display_active' => true,
|
||
],
|
||
'is_active' => true,
|
||
]);
|
||
|
||
foreach ($b2inItems as $i => $item) {
|
||
DisplayVersionItem::create([
|
||
'display_version_id' => $b2inLight->id,
|
||
'item_type' => 'media',
|
||
'content' => $item,
|
||
'sort_order' => $i,
|
||
'is_active' => true,
|
||
]);
|
||
}
|
||
|
||
// ========================================
|
||
// 4. Offers Version
|
||
// ========================================
|
||
$offersVersion = DisplayVersion::create([
|
||
'name' => 'Angebote Schauraum',
|
||
'type' => 'offers',
|
||
'settings' => [
|
||
'loop' => true,
|
||
'transition' => ['type' => 'fade', 'duration' => 600],
|
||
],
|
||
'is_active' => true,
|
||
]);
|
||
|
||
$slides = [
|
||
[
|
||
'type' => 'intro',
|
||
'duration' => 8000,
|
||
'image_url' => '../assets/cabinet-intro.jpg',
|
||
'badge_text' => 'Ausstellungsdeals – solange verfügbar',
|
||
'eyebrow' => 'Heute im Fokus',
|
||
'title' => "Kuratiert.\nHochwertig.\nSofort.",
|
||
'subline' => '',
|
||
'price' => '',
|
||
'original_price' => '',
|
||
'tag_text' => '',
|
||
'bullets' => [],
|
||
'disclaimer' => 'Zwischenverkauf vorbehalten',
|
||
'qr_url' => 'https://cabinet-bielefeld.de',
|
||
'qr_title' => 'Kontakt',
|
||
'contact' => "0521 98620100\nTel. oder WhatsApp",
|
||
'show_brand_text' => true,
|
||
'brand_tagline' => "Planung • Beratung\nLieferung & Montage",
|
||
],
|
||
[
|
||
'type' => 'product-hero',
|
||
'duration' => 10000,
|
||
'image_url' => '../assets/goya1.jpg',
|
||
'badge_text' => 'Einzelstück',
|
||
'eyebrow' => 'Hersteller: Sudbrock',
|
||
'title' => 'GOYA Sideboard',
|
||
'subline' => '',
|
||
'price' => '489 €',
|
||
'original_price' => 'statt 4.744 €',
|
||
'tag_text' => '',
|
||
'bullets' => [],
|
||
'disclaimer' => '',
|
||
'qr_url' => 'https://cabinet-bielefeld.de',
|
||
'qr_title' => 'Reservieren',
|
||
'contact' => "0521 98620100\nTel. oder WhatsApp",
|
||
'show_brand_text' => false,
|
||
'brand_tagline' => '',
|
||
],
|
||
[
|
||
'type' => 'product-details',
|
||
'duration' => 12000,
|
||
'image_url' => '../assets/goya2.jpg',
|
||
'badge_text' => 'Einzelstück',
|
||
'eyebrow' => 'Auf einen Blick',
|
||
'title' => 'GOYA Sideboard',
|
||
'subline' => '',
|
||
'price' => '',
|
||
'original_price' => '',
|
||
'tag_text' => '',
|
||
'bullets' => [
|
||
'Eingelagertes Einzelstück',
|
||
'Abholung in Rheda-Wiedenbrück',
|
||
'Lieferung optional',
|
||
'Deckel weiß matt (neu)',
|
||
],
|
||
'disclaimer' => '',
|
||
'qr_url' => 'https://cabinet-bielefeld.de',
|
||
'qr_title' => 'Reservieren',
|
||
'contact' => "0521 98620100\nTel. oder WhatsApp",
|
||
'show_brand_text' => false,
|
||
'brand_tagline' => '',
|
||
],
|
||
[
|
||
'type' => 'product-impulse',
|
||
'duration' => 10000,
|
||
'image_url' => '../assets/tango.jpg',
|
||
'badge_text' => 'Ausstellungsstück',
|
||
'eyebrow' => 'Nur 1×',
|
||
'title' => 'TANDO Spiegel',
|
||
'subline' => 'Heute mitnehmen',
|
||
'price' => '199 €',
|
||
'original_price' => '',
|
||
'tag_text' => 'Im Store verfügbar',
|
||
'bullets' => [],
|
||
'disclaimer' => '',
|
||
'qr_url' => 'https://cabinet-bielefeld.de',
|
||
'qr_title' => 'Sichern',
|
||
'contact' => "0521 98620100\nTel. oder WhatsApp",
|
||
'show_brand_text' => false,
|
||
'brand_tagline' => '',
|
||
],
|
||
];
|
||
|
||
foreach ($slides as $i => $slide) {
|
||
DisplayVersionItem::create([
|
||
'display_version_id' => $offersVersion->id,
|
||
'item_type' => 'slide',
|
||
'content' => $slide,
|
||
'sort_order' => $i,
|
||
'is_active' => true,
|
||
]);
|
||
}
|
||
|
||
// ========================================
|
||
// Displays
|
||
// ========================================
|
||
$display1 = Display::create([
|
||
'name' => 'Display 1 – Eingang',
|
||
'location' => 'Schaufenster links',
|
||
'is_active' => true,
|
||
]);
|
||
$display1->versions()->attach([
|
||
$videoVersion->id => ['sort_order' => 0],
|
||
$b2inDark->id => ['sort_order' => 1],
|
||
]);
|
||
|
||
$display2 = Display::create([
|
||
'name' => 'Display 2 – Mitte',
|
||
'location' => 'Schaufenster Mitte',
|
||
'is_active' => true,
|
||
]);
|
||
$display2->versions()->attach([
|
||
$offersVersion->id => ['sort_order' => 0],
|
||
]);
|
||
|
||
$display3 = Display::create([
|
||
'name' => 'Display 3 – Rechts',
|
||
'location' => 'Schaufenster rechts',
|
||
'is_active' => true,
|
||
]);
|
||
$display3->versions()->attach([
|
||
$b2inLight->id => ['sort_order' => 0],
|
||
$offersVersion->id => ['sort_order' => 1],
|
||
$videoVersion->id => ['sort_order' => 2],
|
||
]);
|
||
|
||
$display4 = Display::create([
|
||
'name' => 'Display 4 – Innen',
|
||
'location' => 'Schauraum',
|
||
'is_active' => true,
|
||
]);
|
||
$display4->versions()->attach([
|
||
$b2inDark->id => ['sort_order' => 0],
|
||
]);
|
||
}
|
||
}
|