app/database/seeders/DevelopmentSeeder.php

76 lines
No EOL
2.2 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Dish;
use App\Models\Planner;
use App\Models\User;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class DevelopmentSeeder extends Seeder
{
public function run(): void
{
// Only run in development environment, not during testing
if (app()->environment('testing')) {
return;
}
// Create main planner
$planner = Planner::factory()->create([
'name' => 'Development Planner',
'email' => 'myrmidex@myrmidex.net',
'password' => Hash::make('Password'),
]);
// Create a few users (users don't have email/password - only planners do)
$users = collect([
User::factory()->create([
'planner_id' => $planner->id,
'name' => 'Alice Johnson',
]),
User::factory()->create([
'planner_id' => $planner->id,
'name' => 'Bob Smith',
]),
User::factory()->create([
'planner_id' => $planner->id,
'name' => 'Charlie Brown',
]),
]);
// Create various dishes
$dishNames = [
'Spaghetti Bolognese',
'Chicken Curry',
'Caesar Salad',
'Beef Stir Fry',
'Vegetable Lasagne',
'Fish Tacos',
'Mushroom Risotto',
'BBQ Ribs',
'Greek Salad',
'Pad Thai',
'Margherita Pizza',
'Beef Burger',
'Chicken Fajitas',
'Vegetable Soup',
'Salmon Teriyaki',
];
foreach ($dishNames as $dishName) {
$dish = Dish::factory()->create([
'planner_id' => $planner->id,
'name' => $dishName,
]);
// Randomly assign dish to 1-3 users
$assignedUsers = $users->random(rand(1, 3));
$dish->users()->attach($assignedUsers->pluck('id'));
}
$this->command->info('Development data seeded successfully!');
$this->command->info('Login credentials: myrmidex@myrmidex.net / Password');
}
}