feat: Add CustomerSeeder to DatabaseSeeder for customer data initialization

This commit is contained in:
Yoga Pangestu 2026-02-18 22:41:00 +07:00
parent d8038b59b9
commit 7c15781d5d
3 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,23 @@
<?php
namespace Database\Factories;
use App\Models\Customer;
use Illuminate\Database\Eloquent\Factories\Factory;
/**
* @extends \Illuminate\Database\Eloquent\Factories.Factory<\App\Models\Customer>
*/
class CustomerFactory extends Factory
{
protected $model = Customer::class;
public function definition(): array
{
return [
'name' => $this->faker->name(),
'phone_number' => $this->faker->unique()->numerify('08##########'),
'address' => $this->faker->optional()->address(),
];
}
}

View File

@ -0,0 +1,47 @@
<?php
namespace Database\Seeders;
use App\Models\Customer;
use Illuminate\Database\Seeder;
class CustomerSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
// Beberapa pelanggan default
$defaults = [
[
'name' => 'John Doe',
'phone_number' => '081234567890',
'address' => 'Jl. Raya No. 123, Jakarta Selatan',
],
[
'name' => 'Jane Smith',
'phone_number' => '082233445566',
'address' => 'Jl. Merdeka No. 45, Bandung',
],
[
'name' => 'Toko Sembako Makmur',
'phone_number' => '081298765432',
'address' => 'Jl. Pasar Baru No. 10, Surabaya',
],
];
foreach ($defaults as $data) {
Customer::firstOrCreate(
['phone_number' => $data['phone_number']],
[
'name' => $data['name'],
'address' => $data['address'],
]
);
}
// Tambah beberapa pelanggan random
Customer::factory()->count(10)->create();
}
}

View File

@ -22,6 +22,7 @@ public function run(): void
FeedSeeder::class,
FeedPurchaseSeeder::class,
EggCollectionSeeder::class,
CustomerSeeder::class,
]);
}
}