From 66bacaf0e1c314bc249aa0745dbb35abfd702074 Mon Sep 17 00:00:00 2001 From: Yoga Pangestu Date: Fri, 4 Sep 2026 09:33:42 +0700 Subject: [PATCH] feat: update CourseClass and CourseRegistration services; refine select queries to improve data retrieval efficiency --- app/Services/Admin/Manage/CourseClass/CourseClassService.php | 3 +-- app/Services/Admin/Manage/CourseRegistrationService.php | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/app/Services/Admin/Manage/CourseClass/CourseClassService.php b/app/Services/Admin/Manage/CourseClass/CourseClassService.php index 711e147..6a2f7a1 100644 --- a/app/Services/Admin/Manage/CourseClass/CourseClassService.php +++ b/app/Services/Admin/Manage/CourseClass/CourseClassService.php @@ -108,7 +108,6 @@ public function duplicateFromTerm(int $sourceAcademicTermId, int $targetAcademic public function getAllForSelect(?User $user = null): Collection { return CourseClass::query() - ->select(['course_classes.id', 'course_classes.course_id', 'course_classes.lecturer_id', 'course_classes.academic_term_id']) ->join('courses', 'courses.id', '=', 'course_classes.course_id') ->join('departments', 'departments.id', '=', 'courses.department_id') ->with([ @@ -120,6 +119,6 @@ public function getAllForSelect(?User $user = null): Collection ->orderBy('departments.name') ->orderBy('courses.semester_number') ->orderBy('courses.name') - ->get(); + ->get(['course_classes.id', 'course_classes.course_id', 'course_classes.lecturer_id', 'course_classes.academic_term_id']); } } diff --git a/app/Services/Admin/Manage/CourseRegistrationService.php b/app/Services/Admin/Manage/CourseRegistrationService.php index aef3950..6a05600 100644 --- a/app/Services/Admin/Manage/CourseRegistrationService.php +++ b/app/Services/Admin/Manage/CourseRegistrationService.php @@ -33,7 +33,6 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i $ledDepartmentIds = $isDepartmentLeader ? $user->ledDepartmentIds() : null; $paginator = Student::query() - ->select(['students.id', 'students.user_id', 'students.student_number', 'students.department_id']) ->join('departments', 'departments.id', '=', 'students.department_id') ->join('users', 'users.id', '=', 'students.user_id') ->join('user_profiles', 'user_profiles.user_id', '=', 'users.id') @@ -46,7 +45,7 @@ public function paginated(User $user, int $perPage = 25, string $search = '', ?i ->with(['user.profile', 'department:id,name']) ->orderBy('departments.name') ->orderBy('user_profiles.full_name') - ->paginate($perPage); + ->paginate($perPage, ['students.id', 'students.user_id', 'students.student_number', 'students.department_id']); return $paginator->through(fn (Student $student) => [ 'student_id' => $student->id,