62 lines
2.1 KiB
PHP
62 lines
2.1 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use Illuminate\Database\Seeder;
|
|
use App\Models\Member; // Make sure your Member model namespace is correct
|
|
use Faker\Factory as Faker;
|
|
use Illuminate\Support\Str;
|
|
|
|
class MembersTableSeeder extends Seeder
|
|
{
|
|
public function run()
|
|
{
|
|
$faker = Faker::create();
|
|
|
|
// Number of dummy members to create
|
|
$count = 50;
|
|
|
|
for ($i = 0; $i < $count; $i++) {
|
|
$gender = $faker->randomElement(['male', 'female']);
|
|
|
|
// Generate multiple phones & emails
|
|
$phones = [
|
|
$faker->phoneNumber,
|
|
$faker->phoneNumber
|
|
];
|
|
|
|
$emails = [
|
|
$faker->unique()->safeEmail,
|
|
$faker->unique()->safeEmail,
|
|
];
|
|
|
|
// Generate social media profiles (randomly leave some empty)
|
|
$socialMedia = [
|
|
'facebook' => $faker->boolean(70) ? $faker->url : null,
|
|
'instagram' => $faker->boolean(70) ? $faker->url : null,
|
|
'twitter' => $faker->boolean(70) ? $faker->url : null,
|
|
'linkedin' => $faker->boolean(50) ? $faker->url : null,
|
|
];
|
|
|
|
// Filter out null social media links
|
|
$socialMedia = array_filter($socialMedia);
|
|
|
|
Member::create([
|
|
'name' => $faker->name($gender),
|
|
'picture' => $faker->imageUrl(400, 400, 'people'), // Random 400x400 image
|
|
'gender' => $gender,
|
|
'date_of_birth' => $faker->dateTimeBetween('-50 years', '-6 years')->format('Y-m-d'), // Age 6 to 50 years
|
|
'nationality' => $faker->country,
|
|
'weight' => $faker->randomFloat(2, 30, 120), // Between 30kg and 120kg
|
|
'height' => $faker->randomFloat(2, 140, 210), // Between 140cm and 210cm
|
|
'contact_info' => json_encode([
|
|
'phones' => $phones,
|
|
'emails' => $emails,
|
|
]),
|
|
'social_media' => json_encode($socialMedia),
|
|
// 'unique_id' will auto-generate via model observer
|
|
]);
|
|
}
|
|
}
|
|
}
|