MIF_E31231754/database/seeders/KriteriaSeeder.php

85 lines
3.1 KiB
PHP

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use App\Models\Kriteria;
class KriteriaSeeder extends Seeder
{
public function run(): void
{
$kriteria = [
['kode' => 'C1', 'nama' => 'Jenis Pekerjaan', 'jenis' => 'cost', 'bobot' => 0.25],
['kode' => 'C2', 'nama' => 'Jumlah Tanggungan Keluarga', 'jenis' => 'benefit', 'bobot' => 0.20],
['kode' => 'C3', 'nama' => 'Kondisi Kesehatan / Kerentanan Keluarga', 'jenis' => 'benefit', 'bobot' => 0.15],
['kode' => 'C4', 'nama' => 'Usia Kepala Keluarga', 'jenis' => 'benefit', 'bobot' => 0.10],
['kode' => 'C5', 'nama' => 'Riwayat Penerimaan Bantuan Sosial', 'jenis' => 'cost', 'bobot' => 0.30],
];
foreach ($kriteria as $k) {
// GUNAKAN updateOrCreate agar tidak error jika sudah ada
Kriteria::updateOrCreate(
['kode' => $k['kode']], // Cari berdasarkan kode
$k // Update dengan data baru
);
}
// Seeding Sub-Kriteria Default C1 - C5
$subKriteria = [
'C1' => [
1 => 'Tidak bekerja / Buruh harian lepas',
2 => 'Petani kecil / Nelayan kecil',
3 => 'Pedagang kecil / Wiraswasta kecil',
4 => 'Karyawan swasta / PNS Golongan rendah',
5 => 'PNS / Profesional / Pengusaha',
],
'C2' => [
1 => '1 orang',
2 => '2 orang',
3 => '3 orang',
4 => '4 orang',
5 => '> 4 orang',
],
'C3' => [
1 => 'Sehat, usia produktif',
2 => 'Sehat, lanjut usia',
3 => 'Sering sakit ringan / Lansia tunggal',
4 => 'Sakit menahun / Disabilitas ringan',
5 => 'Sakit kronis parah / Disabilitas berat',
],
'C4' => [
1 => '20 - 30 tahun',
2 => '31 - 40 tahun',
3 => '41 - 50 tahun',
4 => '51 - 60 tahun',
5 => '> 60 tahun',
],
'C5' => [
1 => 'Belum pernah menerima bantuan',
2 => 'Pernah menerima (> 2 tahun lalu)',
3 => 'Pernah menerima (1 - 2 tahun lalu)',
4 => 'Aktif menerima 1 jenis bantuan',
5 => 'Aktif menerima banyak jenis bantuan',
],
];
foreach ($subKriteria as $kode => $items) {
$kr = Kriteria::where('kode', $kode)->first();
if ($kr) {
foreach ($items as $nilai => $ket) {
\App\Models\SubKriteria::updateOrCreate(
['kriteria_id' => $kr->id, 'nilai' => $nilai],
['keterangan' => $ket]
);
}
}
}
// Hapus Kriteria C6 dan C7 yang sudah tidak dipakai
Kriteria::whereIn('kode', ['C6', 'C7'])->delete();
$this->command->info(' Kriteria & Sub-Kriteria berhasil di-seed/update!');
}
}