first(); if (!$periode) { $this->command->error('❌ Belum ada periode aktif! Jalankan PeriodeSeeder dulu.'); return; } // Ambil semua warga ordered by id $warga = Warga::orderBy('id')->get(); if ($warga->count() === 0) { $this->command->error('❌ Belum ada data warga! Jalankan WargaSeeder dulu.'); return; } // Nilai per warga: [C1, C2, C3, C4, C5, C6, C7] // C1 Penghasilan → cost → nilai kecil = miskin // C2 Tanggungan → benefit → nilai besar = banyak tanggungan // C3 Kondisi rumah → cost → nilai kecil = rumah buruk // C4 Status pekerjaan → cost → nilai kecil = tidak bekerja // C5 Kepemilikan rmh → cost → nilai kecil = numpang/kontrak // C6 Aset/kendaraan → cost → nilai kecil = tidak punya aset // C7 Riwayat bansos → cost → nilai kecil = belum pernah terima // Skala 1-5 $nilaiPerWarga = [ // Ahmad Fauzi — sangat miskin [1, 5, 1, 1, 1, 1, 1], // Siti Aminah — miskin [1, 4, 2, 2, 1, 1, 2], // Budi Santoso — miskin sedang [2, 4, 2, 2, 2, 2, 1], // Wati Rahayu — miskin sedang [2, 3, 2, 3, 2, 2, 2], // Suparman — sangat miskin [1, 5, 1, 1, 1, 1, 1], // Dewi Lestari — miskin [2, 4, 2, 2, 2, 1, 2], // Hasan Basri — cukup miskin [2, 3, 3, 2, 2, 2, 3], // Nurul Hidayah — miskin [1, 4, 2, 2, 1, 2, 1], // Joko Widodo — cukup [3, 3, 3, 3, 3, 3, 3], // Maryam — miskin [2, 4, 2, 2, 2, 1, 2], // Supardi — sangat miskin [1, 5, 1, 1, 1, 1, 1], // Rina Agustina — cukup miskin [2, 3, 2, 2, 2, 2, 2], ]; $kriteriaList = \App\Models\Kriteria::orderBy('id')->get(); foreach ($warga as $index => $w) { if (!isset($nilaiPerWarga[$index])) { $this->command->warn("⚠️ Warga #{$w->id} ({$w->nama}) tidak ada data nilai, dilewati."); continue; } $nilai = $nilaiPerWarga[$index]; foreach ($kriteriaList as $i => $kr) { if (isset($nilai[$i])) { PenilaianWarga::create([ 'warga_id' => $w->id, 'periode_id' => $periode->id, 'kriteria_id' => $kr->id, 'nilai' => $nilai[$i], ]); } } } $this->command->info('✅ Penilaian warga berhasil dibuat untuk ' . $warga->count() . ' warga.'); } }