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