Skip to content

Commit 4f0cf6d

Browse files
committed
make db seeder with more data
1 parent 020e2fd commit 4f0cf6d

File tree

2 files changed

+59
-1
lines changed

2 files changed

+59
-1
lines changed
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
<?php
2+
3+
namespace Database\Factories;
4+
5+
use App\Models\Jurusan;
6+
use App\Models\Komisariat;
7+
use Illuminate\Database\Eloquent\Factories\Factory;
8+
9+
/**
10+
* @extends \Illuminate\Database\Eloquent\Factories\Factory<\App\Models\Anggota>
11+
*/
12+
class AnggotaFactory extends Factory
13+
{
14+
/**
15+
* Define the model's default state.
16+
*
17+
* @return array<string, mixed>
18+
*/
19+
public function definition(): array
20+
{
21+
// Ambil ID yang ada dari database agar relasinya valid
22+
$jurusanIds = Jurusan::pluck('id')->toArray();
23+
$komisariatIds = Komisariat::pluck('id')->toArray();
24+
25+
return [
26+
'nama' => $this->faker->name(),
27+
'foto' => null, // Biarkan kosong untuk seeder
28+
'alamat' => $this->faker->address(),
29+
'kelamin' => $this->faker->randomElement(['Laki-laki', 'Perempuan']),
30+
'tempat_lahir' => $this->faker->city(),
31+
'tanggal_lahir' => $this->faker->dateTimeBetween('2000-01-01', '2006-12-31')->format('Y-m-d'),
32+
'no_wa' => $this->faker->phoneNumber(),
33+
// tahun_masuk_kuliah dan tahun_lk1 akan kita atur di seeder
34+
'jurusan_id' => $this->faker->randomElement($jurusanIds),
35+
'komisariat_id' => $this->faker->randomElement($komisariatIds),
36+
'tahun_lk2' => null,
37+
'cabang_lk2' => null,
38+
'tahun_lk3' => null,
39+
'badko_lk3' => null,
40+
'tahun_lkk' => null,
41+
'cabang_lkk' => null,
42+
'prestasi' => null,
43+
'latitude' => $this->faker->latitude(-0.1, 0.1),
44+
'longitude' => $this->faker->longitude(109.2, 109.4),
45+
];
46+
}
47+
}

database/seeders/DatabaseSeeder.php

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,18 @@ public function run(): void
133133
'anggota_id' => $anggota3->id,
134134
]);
135135
$user3->assignRole($userRole);
136-
136+
foreach (range(2018, 2024) as $tahun) {
137+
// Buat jumlah anggota random antara 20 sampai 50 untuk tahun ini
138+
$jumlahAnggota = rand(20, 50);
139+
140+
Anggota::factory()
141+
->count($jumlahAnggota)
142+
->create([
143+
// Atur tahun_lk1 dan tahun_masuk_kuliah sesuai dengan tahun loop saat ini
144+
'tahun_lk1' => $tahun,
145+
'tahun_masuk_kuliah' => $tahun,
146+
]);
147+
}
137148
// === Jalankan seeder tambahan jika ada ===
138149
$this->call([
139150
OrganizationSeeder::class,

0 commit comments

Comments
 (0)