Veranstaltungen-APP/database/seeders/EventSeeder.php

132 lines
5.5 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Event;
use App\Models\EventOccurrence;
use App\Models\Source;
use Carbon\Carbon;
use Illuminate\Database\Seeder;
class EventSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// Source erstellen
$source = Source::firstOrCreate(['name' => 'Demo Source']);
$events = [
[
'title' => 'Jazz-Konzert im Park',
'description' => 'Ein wunderschönes Jazz-Konzert mit bekannten Künstlern unter freiem Himmel. Genießen Sie klassischen Jazz bei schönem Wetter.',
'location' => 'Berlin, Tiergarten',
'category' => 'Musik',
'image_url' => null,
],
[
'title' => 'Kunstausstellung "Modern Wonders"',
'description' => 'Zeitgenössische Kunstwerke von internationalen Künstlern. Eine Reise durch moderne Kunstrichtungen.',
'location' => 'München, Kunsthalle',
'category' => 'Kunst',
'image_url' => null,
],
[
'title' => 'Marathon 2026',
'description' => 'Halbmarathon durch die Stadt. Meldung erforderlich. Für verschiedene Leistungsstufen geeignet.',
'location' => 'Hamburg, Stadtzentrum',
'category' => 'Sport',
'image_url' => null,
],
[
'title' => 'Film-Festival "Indie Nights"',
'description' => 'Die besten Independentfilme des Jahres. Entdecken Sie neue Talente im internationalen Kino.',
'location' => 'Köln, Cinemaxx',
'category' => 'Film',
'image_url' => null,
],
[
'title' => 'Technologie-Konferenz 2026',
'description' => 'Die neuesten Trends in AI und Cloud Computing. Vorträge von Experten und Networking-Sessions.',
'location' => 'Frankfurt, Convention Center',
'category' => 'Technologie',
'image_url' => null,
],
[
'title' => 'Theaterstück: "Der Traum"',
'description' => 'Eine klassische Theaterproduktion in moderner Inszenierung. Ein Muss für Theaterliebhaber.',
'location' => 'Stuttgart, Staatstheater',
'category' => 'Theater',
'image_url' => null,
],
[
'title' => 'Sommerfest Altstadt',
'description' => 'Traditionelles Volksfest mit Musik, Essen und Unterhaltung für die ganze Familie.',
'location' => 'Nürnberg, Altstadt',
'category' => 'Festival',
'image_url' => null,
],
[
'title' => 'Yoga und Meditation Workshop',
'description' => 'Kostenloser Workshop für Anfänger und Fortgeschrittene. Bitte Matte mitbringen.',
'location' => 'Düsseldorf, Stadtpark',
'category' => 'Wellness',
'image_url' => null,
],
[
'title' => 'Buchlesung: "Das Erbe"',
'description' => 'Die Autorin liest aus ihrem neuen Roman. Anschließend Signieren und Austausch mit Lesern.',
'location' => 'Leipzig, Stadtbibliothek',
'category' => 'Literatur',
'image_url' => null,
],
[
'title' => 'Kochkurs "Italienische Küche"',
'description' => 'Lernen Sie authentische italienische Gerichte von einem Proffikoch. Inkl. Verkostung.',
'location' => 'Dresden, Kochschule Meyer',
'category' => 'Kulinarik',
'image_url' => null,
],
];
foreach ($events as $eventData) {
$event = Event::create([
'source_id' => $source->id,
'title' => $eventData['title'],
'description' => $eventData['description'],
'location' => $eventData['location'],
'category' => $eventData['category'],
'slug' => \Illuminate\Support\Str::slug($eventData['title']),
'image_url' => $eventData['image_url'],
'status' => 'published',
]);
// Erste Termin
EventOccurrence::create([
'event_id' => $event->id,
'start_datetime' => Carbon::now()->addDays(rand(5, 15))->setHour(rand(14, 19))->setMinute(0),
'end_datetime' => Carbon::now()->addDays(rand(5, 15))->setHour(rand(20, 23))->setMinute(0),
'status' => 'scheduled',
]);
// Zweiter Termin
EventOccurrence::create([
'event_id' => $event->id,
'start_datetime' => Carbon::now()->addDays(rand(20, 40))->setHour(rand(14, 19))->setMinute(0),
'end_datetime' => Carbon::now()->addDays(rand(20, 40))->setHour(rand(20, 23))->setMinute(0),
'status' => 'scheduled',
]);
// Dritter Termin
EventOccurrence::create([
'event_id' => $event->id,
'start_datetime' => Carbon::now()->addDays(rand(45, 90))->setHour(rand(14, 19))->setMinute(0),
'end_datetime' => Carbon::now()->addDays(rand(45, 90))->setHour(rand(20, 23))->setMinute(0),
'status' => 'scheduled',
]);
}
}
}