From 8336df45516c4a0622ce37be13bdfca8913441ec Mon Sep 17 00:00:00 2001 From: myrmidex Date: Mon, 29 Dec 2025 17:30:17 +0100 Subject: [PATCH] feature - 8 - Add development seeder --- Dockerfile.dev | 4 ++ database/seeders/DevelopmentSeeder.php | 77 ++++++++++++++++++++++++++ 2 files changed, 81 insertions(+) create mode 100644 database/seeders/DevelopmentSeeder.php diff --git a/Dockerfile.dev b/Dockerfile.dev index 2206283..f2a67c5 100644 --- a/Dockerfile.dev +++ b/Dockerfile.dev @@ -101,6 +101,10 @@ echo "Waiting for database..." sleep 5 php artisan migrate --force || echo "Migration failed or not needed" +# Run development seeder (only in dev environment) +echo "Running development seeder..." +php artisan db:seed --class=DevelopmentSeeder --force || echo "Seeding skipped or already done" + # Generate app key if not set if [ -z "$APP_KEY" ] || [ "$APP_KEY" = "base64:YOUR_KEY_HERE" ]; then echo "Generating application key..." diff --git a/database/seeders/DevelopmentSeeder.php b/database/seeders/DevelopmentSeeder.php new file mode 100644 index 0000000..26e389c --- /dev/null +++ b/database/seeders/DevelopmentSeeder.php @@ -0,0 +1,77 @@ +create([ + 'name' => 'Development Planner', + 'email' => 'myrmidex@myrmidex.net', + 'password' => Hash::make('Password'), + ]); + + // Create a few users + $users = [ + User::factory()->create([ + 'planner_id' => $planner->id, + 'name' => 'Alice Johnson', + 'email' => 'alice@example.com', + 'password' => Hash::make('Password'), + ]), + User::factory()->create([ + 'planner_id' => $planner->id, + 'name' => 'Bob Smith', + 'email' => 'bob@example.com', + 'password' => Hash::make('Password'), + ]), + User::factory()->create([ + 'planner_id' => $planner->id, + 'name' => 'Charlie Brown', + 'email' => 'charlie@example.com', + 'password' => Hash::make('Password'), + ]), + ]; + + // 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'); + } +} \ No newline at end of file