diff --git a/app/Http/Requests/Admin/Manage/CourseClassRequest.php b/app/Http/Requests/Admin/Manage/CourseClassRequest.php index 3b12ce1..71000d5 100644 --- a/app/Http/Requests/Admin/Manage/CourseClassRequest.php +++ b/app/Http/Requests/Admin/Manage/CourseClassRequest.php @@ -23,7 +23,7 @@ public function rules(): array 'lecturer_id' => [ 'required', 'integer', - Rule::exists('lecturers', 'id')->where('department_id', $departmentId), + Rule::exists('lecturer_department', 'lecturer_id')->where('department_id', $departmentId), ], 'academic_term_id' => ['required', 'integer', Rule::exists('academic_terms', 'id')], 'method' => ['nullable', 'string', Rule::in(ClassMethod::values())], diff --git a/database/seeders/CourseClassSeeder.php b/database/seeders/CourseClassSeeder.php index 2cb14a1..9caa3ba 100644 --- a/database/seeders/CourseClassSeeder.php +++ b/database/seeders/CourseClassSeeder.php @@ -2,30 +2,39 @@ namespace Database\Seeders; +use App\Enums\ClassMethod; +use App\Models\AcademicTerm; +use App\Models\Course; use App\Models\CourseClass; +use App\Models\Lecturer; use Illuminate\Database\Seeder; class CourseClassSeeder extends Seeder { public function run(): void { - CourseClass::insert([ - [ - 'course_id' => 1, - 'lecturer_id' => 1, - 'academic_term_id' => 2, - 'method' => 'hybrid', - 'created_at' => '2026-01-10 08:00:00', - 'updated_at' => '2026-01-10 08:00:00', - ], - [ - 'course_id' => 2, - 'lecturer_id' => 2, - 'academic_term_id' => 2, - 'method' => 'offline', - 'created_at' => '2026-01-10 08:00:00', - 'updated_at' => '2026-01-10 08:00:00', - ], - ]); + $academicTermId = AcademicTerm::where('is_active', true)->value('id') + ?? AcademicTerm::query()->value('id'); + + if (! $academicTermId) { + return; + } + + Course::all()->each(function (Course $course) use ($academicTermId) { + $lecturer = Lecturer::whereHas('departments', fn ($q) => $q->where('departments.id', $course->department_id)) + ->inRandomOrder() + ->first(); + + if (! $lecturer) { + return; + } + + CourseClass::create([ + 'course_id' => $course->id, + 'lecturer_id' => $lecturer->id, + 'academic_term_id' => $academicTermId, + 'method' => fake()->randomElement(ClassMethod::values()), + ]); + }); } }