- Implemented LecturerEdit and LecturerIndex components for managing lecturers. - Created StudentCreate and StudentEdit components for adding and editing students. - Developed StudentIndex component for listing students with search and pagination. - Added department and user types for better type safety. - Updated routes for lecturers and students, including reset password functionality. - Removed AppSidebar from dashboard for a cleaner layout.
176 lines
6.3 KiB
PHP
176 lines
6.3 KiB
PHP
<?php
|
|
|
|
namespace Database\Seeders;
|
|
|
|
use App\Enums\StudentStatus;
|
|
use App\Models\User;
|
|
use Illuminate\Database\Seeder;
|
|
use Illuminate\Support\Facades\Hash;
|
|
|
|
class UserSeeder extends Seeder
|
|
{
|
|
public function run(): void
|
|
{
|
|
$users = [
|
|
[
|
|
'username' => 'dwi',
|
|
'email' => 'dwi@lecturer.itmpwk.ac.id',
|
|
'roles' => ['dosen'],
|
|
'profile' => [
|
|
'full_name' => 'Dwi Saputra',
|
|
'phone_number' => '081234567801',
|
|
'address' => 'Jl. Kampus No. 1, Purwakarta',
|
|
'gender' => 'male',
|
|
'birth_place' => 'Bandung',
|
|
'birth_date' => '1985-03-15',
|
|
],
|
|
'lecturer' => [
|
|
'lecturer_number' => '0012345601',
|
|
'department_id' => 1,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'rina',
|
|
'email' => 'rina@lecturer.itmpwk.ac.id',
|
|
'roles' => ['dosen'],
|
|
'profile' => [
|
|
'full_name' => 'Rina Marlina',
|
|
'phone_number' => '081234567802',
|
|
'address' => 'Jl. Kampus No. 1, Purwakarta',
|
|
'gender' => 'female',
|
|
'birth_place' => 'Jakarta',
|
|
'birth_date' => '1987-07-20',
|
|
],
|
|
'lecturer' => [
|
|
'lecturer_number' => '0012345602',
|
|
'department_id' => 2,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'budi',
|
|
'email' => 'budi@lecturer.itmpwk.ac.id',
|
|
'roles' => ['dosen'],
|
|
'profile' => [
|
|
'full_name' => 'Budi Hartono',
|
|
'phone_number' => '081234567803',
|
|
'address' => 'Jl. Kampus No. 1, Purwakarta',
|
|
'gender' => 'male',
|
|
'birth_place' => 'Surabaya',
|
|
'birth_date' => '1983-11-10',
|
|
],
|
|
'lecturer' => [
|
|
'lecturer_number' => '0012345603',
|
|
'department_id' => 3,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'pangestu',
|
|
'email' => 'pangestu@student.itmpwk.ac.id',
|
|
'roles' => ['mahasiswa', 'developer'],
|
|
'profile' => [
|
|
'full_name' => 'Yoga Pangestu',
|
|
'phone_number' => '082121495806',
|
|
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
|
'gender' => 'male',
|
|
'birth_place' => 'Subang',
|
|
'birth_date' => '2005-03-13',
|
|
],
|
|
'student' => [
|
|
'student_number' => '23010001',
|
|
'department_id' => 1,
|
|
'enrollment_year' => 2023,
|
|
'academic_advisor_id' => 1,
|
|
'status' => StudentStatus::Active,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'doni',
|
|
'email' => 'doni@student.itmpwk.ac.id',
|
|
'roles' => ['mahasiswa', 'developer'],
|
|
'profile' => [
|
|
'full_name' => 'Doni Setiawan Ramadhan',
|
|
'phone_number' => '085793462823',
|
|
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
|
'gender' => 'male',
|
|
'birth_place' => 'Purwakarta',
|
|
'birth_date' => '2004-10-30',
|
|
],
|
|
'student' => [
|
|
'student_number' => '23020002',
|
|
'department_id' => 2,
|
|
'enrollment_year' => 2023,
|
|
'academic_advisor_id' => 2,
|
|
'status' => StudentStatus::Active,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'asep',
|
|
'email' => 'asep@student.itmpwk.ac.id',
|
|
'roles' => ['mahasiswa', 'developer'],
|
|
'profile' => [
|
|
'full_name' => 'Asep Saepudin',
|
|
'phone_number' => '081546505033',
|
|
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
|
'gender' => 'male',
|
|
'birth_place' => 'Purwakarta',
|
|
'birth_date' => '2005-09-24',
|
|
],
|
|
'student' => [
|
|
'student_number' => '24010003',
|
|
'department_id' => 1,
|
|
'enrollment_year' => 2024,
|
|
'academic_advisor_id' => 1,
|
|
'status' => StudentStatus::Active,
|
|
],
|
|
],
|
|
[
|
|
'username' => 'komoala',
|
|
'email' => 'komoala@student.itmpwk.ac.id',
|
|
'roles' => ['mahasiswa'],
|
|
'profile' => [
|
|
'full_name' => 'Komala Dewi',
|
|
'phone_number' => '085819894938',
|
|
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
|
'gender' => 'female',
|
|
'birth_place' => 'Purwakarta',
|
|
'birth_date' => '2005-05-04',
|
|
],
|
|
'student' => [
|
|
'student_number' => '24020004',
|
|
'department_id' => 2,
|
|
'enrollment_year' => 2024,
|
|
'academic_advisor_id' => 2,
|
|
'status' => StudentStatus::Active,
|
|
],
|
|
],
|
|
];
|
|
|
|
foreach ($users as $userData) {
|
|
$roles = $userData['roles'];
|
|
$profile = $userData['profile'];
|
|
|
|
unset($userData['profile'], $userData['roles']);
|
|
|
|
$student = $userData['student'] ?? null;
|
|
$lecturer = $userData['lecturer'] ?? null;
|
|
|
|
unset($userData['profile'], $userData['student'], $userData['lecturer']);
|
|
|
|
$userData['password'] = Hash::make(config('app.default_password'));
|
|
|
|
$user = User::create($userData);
|
|
$user->profile()->create($profile);
|
|
|
|
$user->assignRole($roles);
|
|
|
|
if ($lecturer) {
|
|
$user->lecturer()->create($lecturer);
|
|
}
|
|
|
|
if ($student) {
|
|
$user->student()->create($student);
|
|
}
|
|
}
|
|
}
|
|
}
|