MIF_31230115/manajemen_mp/database/seeders/UserSeeder.php

114 lines
4.1 KiB
PHP

<?php
namespace Database\Seeders;
use App\Models\Anggota;
use App\Models\Role;
use App\Models\User;
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\Hash;
class UserSeeder extends Seeder
{
/**
* Run the database seeds.
*/
public function run(): void
{
$rolePengurus = Role::where('nama_role', 'Pengurus')->first();
$rolePelatih = Role::where('nama_role', 'Pelatih')->first();
$roleAnggota = Role::where('nama_role', 'Anggota')->first();
// ==========================================================
// AKUN 1: PENGURUS (Akun kamu: Super Admin = Pelatih + Pengurus)
// ==========================================================
$userPengurus = User::create([
'email' => 'pengurus@tapakmp.com',
'password' => Hash::make('password123'),
]);
$anggotaPengurus = Anggota::create([
'user_id' => $userPengurus->id,
'no_induk' => 'MP-2026-001',
'nama_lengkap' => 'Siti Afiah Dahliawati',
'jenis_kelamin' => 'P',
'tempat_lahir' => 'Jember',
'tgl_lahir' => '2004-10-29',
'no_hp' => '081455057453',
'kolat_id' => 1, // Pastikan ada data Kolat dengan ID 1
'tingkatan' => 'Balik 1',
'tgl_gabung' => now(),
'status' => 'Aktif',
'alamat' => 'Jl. Merpati Putih No. 1, Jember',
'jabatan' => 'Pengurus (Ketua)',
]);
// Tempelkan HANYA peran Pengurus
if ($rolePengurus) {
$anggotaPengurus->roles()->attach($rolePengurus->id);
}
// ==========================================================
// AKUN 2: PELATIH (Hanya bisa akses menu kepelatihan)
// ==========================================================
$userPelatih = User::create([
'email' => 'pelatih@tapakmp.com',
'password' => Hash::make('password123'),
]);
$anggotaPelatih = Anggota::create([
'user_id' => $userPelatih->id,
'no_induk' => 'MP-2026-002',
'nama_lengkap' => 'Budi Santoso',
'jenis_kelamin' => 'L',
'tempat_lahir' => 'Banyuwangi',
'tgl_lahir' => '2000-05-15',
'no_hp' => '081234567890',
'kolat_id' => 1,
'tingkatan' => 'Kombinasi 1',
'tgl_gabung' => now()->subYears(2),
'status' => 'Aktif',
'alamat' => 'Jl. Mastrip, Jember',
'jabatan' => 'Pelatih',
]);
// Tempelkan peran Pelatih
if ($rolePelatih) {
$anggotaPelatih->roles()->attach($rolePelatih->id);
}
// Hubungkan pelatih dengan Kolat (1 = Unej)
$anggotaPelatih->kolatLatihan()->attach([1]);
// ==========================================================
// AKUN 3: ANGGOTA (Hanya bisa akses dashboard anggota, presensi, spp)
// ==========================================================
$userAnggota = User::create([
'email' => 'anggota@tapakmp.com',
'password' => Hash::make('password123'),
]);
$anggotaBiasa = Anggota::create([
'user_id' => $userAnggota->id,
'no_induk' => 'MP-2026-003',
'nama_lengkap' => 'Siti Nurul Amalia',
'jenis_kelamin' => 'P',
'tempat_lahir' => 'Jember',
'tgl_lahir' => '2005-08-20',
'no_hp' => '085712345678',
'kolat_id' => 1,
'tingkatan' => 'Dasar 1',
'tgl_gabung' => now()->subMonths(3),
'status' => 'Aktif',
'alamat' => 'Jl. Kalimantan, Jember',
'jabatan' => 'Anggota',
]);
// Tempelkan hanya peran Anggota
if ($roleAnggota) {
$anggotaBiasa->roles()->attach($roleAnggota->id);
}
}
}