summaryrefslogtreecommitdiff
path: root/workbench/database/seeders/DatabaseSeeder.php
diff options
context:
space:
mode:
Diffstat (limited to 'workbench/database/seeders/DatabaseSeeder.php')
-rw-r--r--workbench/database/seeders/DatabaseSeeder.php15
1 files changed, 14 insertions, 1 deletions
diff --git a/workbench/database/seeders/DatabaseSeeder.php b/workbench/database/seeders/DatabaseSeeder.php
index 9b7e84a..5dddc62 100644
--- a/workbench/database/seeders/DatabaseSeeder.php
+++ b/workbench/database/seeders/DatabaseSeeder.php
@@ -4,6 +4,7 @@ namespace Workbench\Database\Seeders;
use Illuminate\Database\Seeder;
use Workbench\App\Models\Category;
+use Workbench\App\Models\Order;
use Workbench\App\Models\Product;
class DatabaseSeeder extends Seeder
@@ -15,9 +16,21 @@ class DatabaseSeeder extends Seeder
{
$categories = Category::factory()->count(10)->create();
- Product::factory()
+ $products = Product::factory()
->state(fn () => ['category_id' => $categories->random()->id])
->count(104)
->create();
+
+ Order::factory()->count(50)->create()->each(function ($order) use ($products) {
+ $orderProducts = $products->random(rand(1, 5));
+ foreach ($orderProducts as $product) {
+ $quantity = rand(1, 5);
+ $order->products()->attach($product->id, [
+ 'quantity' => $quantity,
+ 'price' => $product->price,
+ ]);
+ }
+ $order->update(['total' => $order->products->sum(fn ($p) => $p->pivot->quantity * $p->pivot->price)]);
+ });
}
}