From f4a4a30d70f406201940a2f26e955224dd7bc46a Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Tue, 28 Oct 2025 21:13:25 +0700 Subject: [PATCH] feat(seeder): membuat MembershipSeeder dan menyesuaikan CustomerSeeder menjadi data dummy dengan jumlah 500 data --- database/seeders/CustomerSeeder.php | 34 ++++++++++-------------- database/seeders/MembershipSeeder.php | 38 +++++++++++++++++++++++++++ 2 files changed, 52 insertions(+), 20 deletions(-) create mode 100644 database/seeders/MembershipSeeder.php diff --git a/database/seeders/CustomerSeeder.php b/database/seeders/CustomerSeeder.php index 517dec8..a1d4d32 100644 --- a/database/seeders/CustomerSeeder.php +++ b/database/seeders/CustomerSeeder.php @@ -2,34 +2,28 @@ namespace Database\Seeders; -use App\Enums\Gender; use App\Models\Customer; +use App\Models\User; use Illuminate\Database\Seeder; class CustomerSeeder extends Seeder { public function run(): void { - $customers = [ - [ - 'name' => 'Yoga Pangestu', - 'phone_number' => '082121495806', - 'gender' => Gender::MALE, - ], - [ - 'name' => 'Budi', - 'phone_number' => '082121673845', - 'gender' => Gender::MALE, - ], - [ - 'name' => 'Jaka', - 'phone_number' => '082127382347', - 'gender' => Gender::MALE, - ], - ]; + for ($i = 0; $i < 500; $i++) { + $hasUser = fake()->boolean(70); - foreach ($customers as $customer) { - Customer::create($customer); + $userId = null; + + if ($hasUser) { + $user = User::factory()->create(); + $userId = $user->id; + } + + Customer::factory() + ->create([ + 'user_id' => $userId, + ]); } } } diff --git a/database/seeders/MembershipSeeder.php b/database/seeders/MembershipSeeder.php new file mode 100644 index 0000000..dac7815 --- /dev/null +++ b/database/seeders/MembershipSeeder.php @@ -0,0 +1,38 @@ +pluck('id') + ->unique() + ->toArray(); + + foreach ($userIds as $userId) { + $totalPoints = fake()->numberBetween(0, 10000); + + $tier = $tiers->first(function ($tier) use ($totalPoints) { + $min = $tier->min_points; + $max = $tier->max_points ?? PHP_INT_MAX; + + return $totalPoints >= $min && $totalPoints <= $max; + }); + + Membership::create([ + 'user_id' => $userId, + 'tier_id' => $tier->id, + 'total_points' => $totalPoints, + ]); + } + } +}