MIF_E31230892/sim-pkpps/database/seeders/SantriSeeder.php

329 lines
26 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
namespace Database\Seeders;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Carbon\Carbon;
class SantriSeeder extends Seeder
{
/**
* ============================================================
* REFERENSI KODE KELAS (dari KelasSeeder)
* ============================================================
* Kelas Pondok (KEL001):
* KLS001 = PB
* KLS002 = Lambatan
* KLS003 = Cepatan
*
* Sekolah Formal (KEL002):
* KLS004 = SD 1 | KLS005 = SD 2 | KLS006 = SD 3
* KLS007 = SD 4 | KLS008 = SD 5 | KLS009 = SD 6
* KLS010 = SMP 7 | KLS011 = SMP 8 | KLS012 = SMP 9
* KLS013 = SMA 10 | KLS014 = SMA 11 | KLS015 = SMA 12
* ============================================================
*
* CARA EDIT KELAS SANTRI:
* Setiap santri punya array 'kelas' berisi kode kelas yang diikuti.
* - is_primary: true = kelas utama (kelas pondok)
* - is_primary: false = kelas tambahan (kelas formal)
* Ubah kode kelas di bagian 'kelas' sesuai data asli!
*/
public function run(): void
{
// Hanya hapus data S003 ke atas, S001 & S002 tetap aman
DB::statement('SET FOREIGN_KEY_CHECKS=0;');
DB::table('santri_kelas')
->whereIn('id_santri', array_map(fn($n) => 'S' . str_pad($n, 3, '0', STR_PAD_LEFT), range(3, 99)))
->delete();
DB::table('santris')
->whereIn('id_santri', array_map(fn($n) => 'S' . str_pad($n, 3, '0', STR_PAD_LEFT), range(3, 99)))
->delete();
DB::statement('SET FOREIGN_KEY_CHECKS=1;');
$tahunAjaran = '2024/2025';
$now = Carbon::now();
$santriList = [
// ============================================================
// S003 - S034: Edit bagian 'kelas' sesuai data asli!
// ============================================================
[
'santri' => ['id_santri' => 'S003', 'nis' => '510035160089253003', 'nama_lengkap' => 'Altaf Baihaqi Amrullah', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Tiebuk RT 006 RW 003 Wiyu, Pacet, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Baihaqi', 'nomor_hp_ortu' => '+6281234560003', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH SESUAI DATA
['kode' => 'KLS004', 'is_primary' => false], // SD 1 ← UBAH SESUAI DATA
],
],
[
'santri' => ['id_santri' => 'S004', 'nis' => '510035160089253004', 'nama_lengkap' => 'Aminati Yusrin Isnaini', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Brangkal RT 002 RW 001 Brangkal, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Yusrin', 'nomor_hp_ortu' => '+6281234560004', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS005', 'is_primary' => false], // SD 2 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S005', 'nis' => '510035160089253005', 'nama_lengkap' => 'Ananda Novreandis', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Jampirogo RT 006 RW 001 Jampirogo, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Novreandis Sr.', 'nomor_hp_ortu' => '+6281234560005', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS004', 'is_primary' => false], // SD 1 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S006', 'nis' => '510035160089253006', 'nama_lengkap' => 'Andika Maulana Ishaq', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Jemparing RT 001 RW 001 Pakel, Bareng, Jombang', 'daerah_asal' => 'Jombang Selatan', 'nama_orang_tua' => 'Ishaq', 'nomor_hp_ortu' => '+6281234560006', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS010', 'is_primary' => false], // SMP 7 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S007', 'nis' => '510035160089253007', 'nama_lengkap' => 'Anggraini Nur Dina Fahma', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Plosarejo RT 002 RW 001 Tlogoagung, Kedungadem, Bojonegoro', 'daerah_asal' => 'Bojonegoro Timur', 'nama_orang_tua' => 'Nur Fahma', 'nomor_hp_ortu' => '+6281234560007', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS011', 'is_primary' => false], // SMP 8 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S008', 'nis' => '510035160089253008', 'nama_lengkap' => 'Azalia Calysta Salsabila', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Bulu RT 002 RW 001 Gedangan, Kutorejo, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Calysta Sr.', 'nomor_hp_ortu' => '+6281234560008', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS006', 'is_primary' => false], // SD 3 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S009', 'nis' => '510035160089253009', 'nama_lengkap' => 'Bustomi Firman Amrulloh', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Kuwik RT 001 RW 001 Bareng, Bareng, Jombang', 'daerah_asal' => 'Jombang Selatan', 'nama_orang_tua' => 'Firman', 'nomor_hp_ortu' => '+6281234560009', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS007', 'is_primary' => false], // SD 4 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S010', 'nis' => '510035160089253010', 'nama_lengkap' => 'Cresya Nirva Arvenda', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Kedungmaling II RT 014 RW 006 Kedungmaling, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Nirva Sr.', 'nomor_hp_ortu' => '+6281234560010', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS013', 'is_primary' => false], // SMA 10 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S011', 'nis' => '510035160089253011', 'nama_lengkap' => 'Daud Fasal', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Plumpang RT 017 RW 004 Penambangan, Balongbendo, Sidoarjo', 'daerah_asal' => 'Sidoarjo Utara', 'nama_orang_tua' => 'Fasal Sr.', 'nomor_hp_ortu' => '+6281234560011', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS010', 'is_primary' => false], // SMP 7 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S012', 'nis' => '510035160089253012', 'nama_lengkap' => 'Dwi Melviana Putri', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Panggih RT 003 RW 003 Panggih, Trowulan, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Melviana Sr.', 'nomor_hp_ortu' => '+6281234560012', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS014', 'is_primary' => false], // SMA 11 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S013', 'nis' => '510035160089253013', 'nama_lengkap' => 'Fina Yusrina Jannah', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Kepuhanyar RT 001 RW 001 Kepuhanyar, Mojoanyar, Mojokerto', 'daerah_asal' => 'Mojokerto Kota', 'nama_orang_tua' => 'Yusrina Sr.', 'nomor_hp_ortu' => '+6281234560013', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS015', 'is_primary' => false], // SMA 12 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S014', 'nis' => '510035160089253014', 'nama_lengkap' => 'Gadis Sholikhah', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Brangkal RT 002 RW 001 Brangkal, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Sholikhah Sr.', 'nomor_hp_ortu' => '+6281234560014', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS008', 'is_primary' => false], // SD 5 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S015', 'nis' => '510035160089253015', 'nama_lengkap' => 'Gilang Aswin Nahar', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Panggih RT 001 RW 003 Panggih, Trowulan, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Aswin', 'nomor_hp_ortu' => '+6281234560015', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS009', 'is_primary' => false], // SD 6 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S016', 'nis' => '510035160089253016', 'nama_lengkap' => 'Gustiyar Abdullah Manshurin', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Setro RT 007 RW 001 Jatirejo, Kasreman, Ngawi', 'daerah_asal' => 'Ngawi Kota', 'nama_orang_tua' => 'Abdullah', 'nomor_hp_ortu' => '+6281234560016', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS012', 'is_primary' => false], // SMP 9 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S017', 'nis' => '510035160089253017', 'nama_lengkap' => 'Ilham Maulana Abdillah', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Tundungan RT 004 RW 002 Sidomojo, Krian, Sidoarjo', 'daerah_asal' => 'Sidoarjo Utara', 'nama_orang_tua' => 'Maulana', 'nomor_hp_ortu' => '+6281234560017', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS013', 'is_primary' => false], // SMA 10 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S018', 'nis' => '510035160089253018', 'nama_lengkap' => 'Kafa Septian Ramdan Efendi', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Brangkal RT 002 RW001 Brangkal, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Septian', 'nomor_hp_ortu' => '+6281234560018', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS011', 'is_primary' => false], // SMP 8 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S019', 'nis' => '510035160089253019', 'nama_lengkap' => "Khalisa Syifa'ul Aini", 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Tiebuk RT 007 RW 003 Wiyu, Pacet, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => "Syifa'ul Sr.", 'nomor_hp_ortu' => '+6281234560019', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS005', 'is_primary' => false], // SD 2 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S020', 'nis' => '510035160089253020', 'nama_lengkap' => 'Kharisa Nur Qalbi', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Pasinan Lemah Putih RT 011 RW 003, Wringinanom, Gresik', 'daerah_asal' => 'Gresik Selatan', 'nama_orang_tua' => 'Nur Qalbi Sr.', 'nomor_hp_ortu' => '+6281234560020', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS014', 'is_primary' => false], // SMA 11 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S021', 'nis' => '510035160089253021', 'nama_lengkap' => 'Lana Novpriyanto', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Parengan RT 019 RW 004 Kraton, Krian, Sidoarjo', 'daerah_asal' => 'Sidoarjo Utara', 'nama_orang_tua' => 'Novpriyanto Sr.', 'nomor_hp_ortu' => '+6281234560021', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS010', 'is_primary' => false], // SMP 7 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S022', 'nis' => '510035160089253022', 'nama_lengkap' => 'M. Reyhan Firdaus', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Jampirogo RT 005 RW 001 Jampirogo, Sooko, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Reyhan Sr.', 'nomor_hp_ortu' => '+6281234560022', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS006', 'is_primary' => false], // SD 3 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S023', 'nis' => '510035160089253023', 'nama_lengkap' => 'Masrurotin Fatma Ayu Wulandari', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Pakis Kulon RT 003 RW 003 Pakis, Trowulan, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Fatma Sr.', 'nomor_hp_ortu' => '+6281234560023', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS015', 'is_primary' => false], // SMA 12 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S024', 'nis' => '510035160089253024', 'nama_lengkap' => 'Mochammad Adam Madinata', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Kepuhanyar RT 001 RW001 Kepuhanyar, Mojoanyar, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Adam Sr.', 'nomor_hp_ortu' => '+6281234560024', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS007', 'is_primary' => false], // SD 4 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S025', 'nis' => '510035160089253025', 'nama_lengkap' => "Muchammad Fachrizal Ta'awamu Insan", 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Sidokepung RT 015 RW 003 Buduran, Sidoarjo', 'daerah_asal' => 'Sidoarjo Tengah', 'nama_orang_tua' => 'Fachrizal', 'nomor_hp_ortu' => '+6281234560025', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS011', 'is_primary' => false], // SMP 8 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S026', 'nis' => '510035160089253026', 'nama_lengkap' => 'Muhammad Revano Fadillah Ramadhan', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Kemlagi Timur RT 001 RW 003 Kemlagi, Kemlagi, Mojokerto', 'daerah_asal' => 'Mojokerto Kota', 'nama_orang_tua' => 'Fadillah', 'nomor_hp_ortu' => '+6281234560026', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS012', 'is_primary' => false], // SMP 9 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S027', 'nis' => '510035160089253027', 'nama_lengkap' => 'Muhammad Ibrahim Try Aji', 'jenis_kelamin' => 'Laki-laki', 'status' => 'Aktif', 'alamat_santri' => 'Jln. Patimura RT 002 RW 002 Keboan, Ngusikan, Jombang', 'daerah_asal' => 'Mojokerto Kota', 'nama_orang_tua' => 'Ibrahim', 'nomor_hp_ortu' => '+6281234560027', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS013', 'is_primary' => false], // SMA 10 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S028', 'nis' => '510035160089253028', 'nama_lengkap' => 'Mutiara Dira Ardiana', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Tiebuk RT 008 RW 001 Wiyu, Pacet, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Dira Sr.', 'nomor_hp_ortu' => '+6281234560028', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS008', 'is_primary' => false], // SD 5 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S029', 'nis' => '510035160089253029', 'nama_lengkap' => 'Nerissa Arviana Maharani', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Ngangkrik Kidul RT 001 RW 003 Gebangangkrik, Ngimbang, Lamongan', 'daerah_asal' => 'Kambangan', 'nama_orang_tua' => 'Arviana Sr.', 'nomor_hp_ortu' => '+6281234560029', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS009', 'is_primary' => false], // SD 6 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S030', 'nis' => '510035160089253030', 'nama_lengkap' => 'Prisca Zuzin Firdaus', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Ngrayung RT 004 RW 001 Brayung, Puri, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Zuzin Sr.', 'nomor_hp_ortu' => '+6281234560030', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS004', 'is_primary' => false], // SD 1 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S031', 'nis' => '510035160089253031', 'nama_lengkap' => 'Shoffiya Fitriani Az Zahra', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Dadi RT 027 RW 014 Dadi, Plaosan, Magetan', 'daerah_asal' => 'Magetan', 'nama_orang_tua' => 'Fitriani Sr.', 'nomor_hp_ortu' => '+6281234560031', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS005', 'is_primary' => false], // SD 2 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S032', 'nis' => '510035160089253032', 'nama_lengkap' => 'Syifa Putri Ramahdani', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Sumbertempur Perum Puri Kencana RT 003 RW003 Sumbergirang, Puri, Mojokerto', 'daerah_asal' => 'Mojokerto Barat', 'nama_orang_tua' => 'Putri Sr.', 'nomor_hp_ortu' => '+6281234560032', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS003', 'is_primary' => true], // Cepatan ← UBAH
['kode' => 'KLS006', 'is_primary' => false], // SD 3 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S033', 'nis' => '510035160089253033', 'nama_lengkap' => 'Tiara Rahmadhani Faradilah', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Bulurejo RT 001 RW 002 Kepuhkajang, Perak, Jombang', 'daerah_asal' => 'Mojokerto Kota', 'nama_orang_tua' => 'Rahmadhani Sr.', 'nomor_hp_ortu' => '+6281234560033', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS001', 'is_primary' => true], // PB ← UBAH
['kode' => 'KLS014', 'is_primary' => false], // SMA 11 ← UBAH
],
],
[
'santri' => ['id_santri' => 'S034', 'nis' => '510035160089253034', 'nama_lengkap' => 'Virlye Andyra Zahra', 'jenis_kelamin' => 'Perempuan', 'status' => 'Aktif', 'alamat_santri' => 'Dsn. Randuwates RT 005 RW 003 Mojowatesrejo, Kemlagi, Mojokerto', 'daerah_asal' => 'Mojokerto Kota', 'nama_orang_tua' => 'Andyra Sr.', 'nomor_hp_ortu' => '+6281234560034', 'rfid_uid' => null, 'foto' => null, 'created_at' => $now, 'updated_at' => $now],
'kelas' => [
['kode' => 'KLS002', 'is_primary' => true], // Lambatan ← UBAH
['kode' => 'KLS015', 'is_primary' => false], // SMA 12 ← UBAH
],
],
];
// ============================================================
// PROSES INSERT — jangan ubah bagian ini
// ============================================================
// Ambil mapping kode_kelas -> id dari DB
$kelasMap = DB::table('kelas')->pluck('id', 'kode_kelas')->toArray();
$totalSantri = 0;
$totalKelas = 0;
$errors = [];
foreach ($santriList as $item) {
DB::table('santris')->insert($item['santri']);
$totalSantri++;
$idSantri = $item['santri']['id_santri'];
foreach ($item['kelas'] as $kelasItem) {
$kode = $kelasItem['kode'];
if (!isset($kelasMap[$kode])) {
$errors[] = "⚠️ Kelas [{$kode}] tidak ada di DB! Santri {$idSantri} dilewati untuk kelas ini.";
continue;
}
DB::table('santri_kelas')->insert([
'id_santri' => $idSantri,
'id_kelas' => $kelasMap[$kode],
'tahun_ajaran' => $tahunAjaran,
'is_primary' => $kelasItem['is_primary'],
'created_at' => $now,
'updated_at' => $now,
]);
$totalKelas++;
}
}
$this->command->info("✅ SantriSeeder selesai!");
$this->command->info("{$totalSantri} santri ditambahkan (S003S034)");
$this->command->info("{$totalKelas} record santri_kelas ditambahkan");
$this->command->info(" → Tahun ajaran: {$tahunAjaran}");
$this->command->info(" → S001 & S002 tidak tersentuh ✓");
if (!empty($errors)) {
$this->command->warn("\nAda masalah:");
foreach ($errors as $err) {
$this->command->warn(" " . $err);
}
}
}
}