feat: refactor DatabaseSeeder and UserSeeder for improved structure and local environment handling
This commit is contained in:
parent
cdd81caf22
commit
378ddebac9
@ -11,27 +11,35 @@ class DatabaseSeeder extends Seeder
|
||||
|
||||
public function run(): void
|
||||
{
|
||||
$this->call([
|
||||
$seeders = [
|
||||
RolePermissionSeeder::class,
|
||||
DepartmentSeeder::class,
|
||||
AcademicTermSeeder::class,
|
||||
UserSeeder::class,
|
||||
DepartmentLeadershipSeeder::class,
|
||||
CourseSeeder::class,
|
||||
CourseClassSeeder::class,
|
||||
ClassEnrollmentSeeder::class,
|
||||
// CourseRegistrationSeeder::class,
|
||||
MaterialSeeder::class,
|
||||
AssignmentSeeder::class,
|
||||
SubmissionSeeder::class,
|
||||
ScheduleSeeder::class,
|
||||
AttendanceSeeder::class,
|
||||
// TuitionInvoiceSeeder::class,
|
||||
// TuitionPaymentSeeder::class,
|
||||
AnnouncementSeeder::class,
|
||||
LetterRequestSeeder::class,
|
||||
AcademicAdvisingLogSeeder::class,
|
||||
NotificationSeeder::class,
|
||||
]);
|
||||
];
|
||||
|
||||
if (app()->environment('local')) {
|
||||
$seeders = [
|
||||
...$seeders,
|
||||
DepartmentLeadershipSeeder::class,
|
||||
CourseSeeder::class,
|
||||
CourseClassSeeder::class,
|
||||
ClassEnrollmentSeeder::class,
|
||||
CourseRegistrationSeeder::class,
|
||||
MaterialSeeder::class,
|
||||
AssignmentSeeder::class,
|
||||
SubmissionSeeder::class,
|
||||
ScheduleSeeder::class,
|
||||
AttendanceSeeder::class,
|
||||
TuitionInvoiceSeeder::class,
|
||||
TuitionPaymentSeeder::class,
|
||||
AnnouncementSeeder::class,
|
||||
LetterRequestSeeder::class,
|
||||
AcademicAdvisingLogSeeder::class,
|
||||
NotificationSeeder::class,
|
||||
];
|
||||
}
|
||||
|
||||
$this->call($seeders);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Enums\Gender;
|
||||
use App\Enums\Semester;
|
||||
use App\Enums\StudentStatus;
|
||||
use App\Models\AcademicTerm;
|
||||
@ -20,86 +21,28 @@ public function run(): void
|
||||
$users = [
|
||||
[
|
||||
'username' => 'pangestu',
|
||||
'email' => 'pangestu@student.itmpwk.ac.id',
|
||||
'roles' => ['mahasiswa', 'developer'],
|
||||
'email' => 'project.pangestuyoga@gmail.com',
|
||||
'roles' => ['developer'],
|
||||
'profile' => [
|
||||
'full_name' => 'Yoga Pangestu',
|
||||
'phone_number' => '082121495806',
|
||||
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
||||
'gender' => 'male',
|
||||
'gender' => Gender::Male,
|
||||
'birth_place' => 'Subang',
|
||||
'birth_date' => '2005-03-13',
|
||||
],
|
||||
'student' => [
|
||||
'student_number' => '23010001',
|
||||
'department_id' => 1,
|
||||
'enrollment_year' => 2023,
|
||||
'current_semester' => 5,
|
||||
'academic_advisor_id' => null,
|
||||
'status' => StudentStatus::Active,
|
||||
'address' => 'Jl. Raya Cijambe No. 123, Subang, Jawa Barat',
|
||||
],
|
||||
],
|
||||
[
|
||||
'username' => 'doni',
|
||||
'email' => 'doni@student.itmpwk.ac.id',
|
||||
'roles' => ['mahasiswa'],
|
||||
'username' => 'administrator',
|
||||
'email' => 'administrator@gmail.com',
|
||||
'roles' => ['staff-admin'],
|
||||
'profile' => [
|
||||
'full_name' => 'Doni Setiawan Ramadhan',
|
||||
'phone_number' => '085793462823',
|
||||
'address' => 'Jl. Merdeka No. 1, Purwakarta',
|
||||
'gender' => 'male',
|
||||
'full_name' => 'Administrator',
|
||||
'phone_number' => '082121212121',
|
||||
'gender' => Gender::Male,
|
||||
'birth_place' => 'Purwakarta',
|
||||
'birth_date' => '2004-10-30',
|
||||
],
|
||||
'student' => [
|
||||
'student_number' => '23020002',
|
||||
'department_id' => 1,
|
||||
'enrollment_year' => 2023,
|
||||
'current_semester' => 5,
|
||||
'academic_advisor_id' => null,
|
||||
'status' => StudentStatus::Active,
|
||||
],
|
||||
],
|
||||
[
|
||||
'username' => 'asep',
|
||||
'email' => 'asep@student.itmpwk.ac.id',
|
||||
'roles' => ['mahasiswa'],
|
||||
'profile' => [
|
||||
'full_name' => 'Asep Saepudin',
|
||||
'phone_number' => '081546505033',
|
||||
'birth_date' => '2000-01-01',
|
||||
'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,
|
||||
'current_semester' => 3,
|
||||
'academic_advisor_id' => null,
|
||||
'status' => StudentStatus::Active,
|
||||
],
|
||||
],
|
||||
[
|
||||
'username' => 'komala',
|
||||
'email' => 'komala@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' => 1,
|
||||
'enrollment_year' => 2024,
|
||||
'current_semester' => 3,
|
||||
'academic_advisor_id' => null,
|
||||
'status' => StudentStatus::Active,
|
||||
],
|
||||
],
|
||||
];
|
||||
@ -135,9 +78,11 @@ public function run(): void
|
||||
}
|
||||
}
|
||||
|
||||
$this->seedRandomLecturers();
|
||||
$this->seedRandomStudents();
|
||||
$this->seedOtherStaff();
|
||||
if (app()->environment('local')) {
|
||||
$this->seedRandomLecturers();
|
||||
$this->seedRandomStudents();
|
||||
$this->seedOtherStaff();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
@ -193,7 +138,7 @@ private function seedRandomStudents(): void
|
||||
$departments = Department::all();
|
||||
|
||||
foreach (AcademicTerm::all() as $term) {
|
||||
[$startYear, $endYear] = explode('/', $term->name);
|
||||
[$startYear, $endYear] = explode('/', $term->academic_year);
|
||||
$enrollmentYear = $term->semester === Semester::even ? (int) $endYear : (int) $startYear;
|
||||
|
||||
foreach ($departments as $department) {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user