first(); if (! $type) { return; } $demoTenant = Tenant::where('slug', 'demo-tenant')->first(); if (! $demoTenant) { return; } $event = Event::updateOrCreate(['slug' => 'demo-wedding-2025'], [ 'tenant_id' => $demoTenant->id, 'name' => ['de' => 'Demo Hochzeit 2025', 'en' => 'Demo Wedding 2025'], 'description' => ['de' => 'Demo-Event', 'en' => 'Demo event'], 'date' => now()->addMonths(3)->toDateString(), 'event_type_id' => $type->id, 'status' => 'published', 'is_active' => true, 'settings' => json_encode([]), 'default_locale' => 'de', ]); if ($event->joinTokens()->count() === 0) { /** @var EventJoinTokenService $service */ $service = app(EventJoinTokenService::class); $service->createToken($event, [ 'label' => 'Demo QR', ]); } $package = Package::where('slug', 'standard')->first(); if (! $package) { $package = Package::where('type', 'endcustomer')->orderBy('price')->first(); } if ($package) { $eventPackageData = [ 'purchased_price' => $package->price, 'purchased_at' => now()->subDays(7), ]; if (Schema::hasColumn('event_packages', 'used_photos')) { $eventPackageData['used_photos'] = 0; } if (Schema::hasColumn('event_packages', 'used_guests')) { $eventPackageData['used_guests'] = 0; } if (Schema::hasColumn('event_packages', 'gallery_expires_at')) { $eventPackageData['gallery_expires_at'] = now()->addDays($package->gallery_days ?? 30); } EventPackage::updateOrCreate( [ 'event_id' => $event->id, 'package_id' => $package->id, ], $eventPackageData ); PackagePurchase::query() ->where('tenant_id', $demoTenant->id) ->where('package_id', $package->id) ->where('provider_id', 'demo-seed') ->update([ 'event_id' => $event->id, ]); } } }