'admin@lmiv-automat.de'], [ 'name' => 'Super Admin', 'email' => 'admin@lmiv-automat.de', 'password' => Hash::make('admin123'), 'role' => 'super_admin', 'tenant_id' => null, 'email_verified_at' => now(), ] ); // Demo-Mandant erstellen $tenant = Tenant::firstOrCreate( ['slug' => 'demo-firma'], [ 'name' => 'Demo Firma GmbH', 'slug' => 'demo-firma', 'public_slug' => 'demo-firma', 'is_active' => true, 'show_prices' => true, 'show_stock' => true, 'street' => 'Musterstraße', 'house_number' => '123', 'city' => 'Musterstadt', 'postal_code' => '12345', 'country' => 'Deutschland', ] ); // Mandanten-Admin erstellen $tenantAdmin = User::firstOrCreate( ['email' => 'admin@demo-firma.de'], [ 'name' => 'Mandanten Admin', 'email' => 'admin@demo-firma.de', 'password' => Hash::make('demo123'), 'role' => 'tenant_admin', 'tenant_id' => $tenant->id, 'email_verified_at' => now(), ] ); // Automat erstellen $machine = VendingMachine::firstOrCreate( ['machine_number' => 'VM001'], [ 'name' => 'Demo Automat Haupteingang', 'machine_number' => 'VM001', 'location' => 'Haupteingang Gebäude A', 'description' => 'Hauptautomat mit Snacks und Getränken', 'is_active' => true, 'tenant_id' => $tenant->id, ] ); // Produkte erstellen $products = [ [ 'name' => 'Coca Cola 0,33l', 'description' => 'Erfrischende Cola', 'price' => 1.50, 'tenant_id' => $tenant->id, ], [ 'name' => 'Mars Riegel', 'description' => 'Schokoladen-Karamell-Riegel', 'price' => 1.20, 'tenant_id' => $tenant->id, ], [ 'name' => 'Erdnüsse gesalzen', 'description' => 'Geröstete gesalzene Erdnüsse', 'price' => 2.00, 'tenant_id' => $tenant->id, ], ]; $createdProducts = []; foreach ($products as $productData) { $product = Product::firstOrCreate( ['name' => $productData['name'], 'tenant_id' => $productData['tenant_id']], $productData ); $createdProducts[] = $product; } // Slots erstellen for ($i = 1; $i <= 6; $i++) { $slot = Slot::firstOrCreate( ['slot_number' => $i, 'vending_machine_id' => $machine->id], [ 'slot_number' => $i, 'vending_machine_id' => $machine->id, 'capacity' => 8, 'is_active' => true, ] ); // Produkt zu Slot zuordnen (für die ersten 3 Slots) if ($i <= 3 && isset($createdProducts[$i - 1])) { $product = $createdProducts[$i - 1]; $slot->products()->syncWithoutDetaching([$product->id => [ 'quantity' => 5, 'current_price' => $product->price, ]]); } } $this->command->info('Demo-Daten erfolgreich erstellt:'); $this->command->info('- Super Admin: admin@lmiv-automat.de / admin123'); $this->command->info('- Mandanten Admin: admin@demo-firma.de / demo123'); $this->command->info('- Demo-Mandant: ' . $tenant->name); $this->command->info('- Demo-Automat: ' . $machine->name); $this->command->info('- 3 Produkte und 6 Slots erstellt'); } }