refactor: update CourseClassRequest and CourseClassSeeder for lecturer validation and dynamic seeding
Some checks failed
tests / ci (pull_request) Has been cancelled
Some checks failed
tests / ci (pull_request) Has been cancelled
This commit is contained in:
parent
7af236a379
commit
cbed63f43c
@ -23,7 +23,7 @@ public function rules(): array
|
|||||||
'lecturer_id' => [
|
'lecturer_id' => [
|
||||||
'required',
|
'required',
|
||||||
'integer',
|
'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')],
|
'academic_term_id' => ['required', 'integer', Rule::exists('academic_terms', 'id')],
|
||||||
'method' => ['nullable', 'string', Rule::in(ClassMethod::values())],
|
'method' => ['nullable', 'string', Rule::in(ClassMethod::values())],
|
||||||
|
|||||||
@ -2,30 +2,39 @@
|
|||||||
|
|
||||||
namespace Database\Seeders;
|
namespace Database\Seeders;
|
||||||
|
|
||||||
|
use App\Enums\ClassMethod;
|
||||||
|
use App\Models\AcademicTerm;
|
||||||
|
use App\Models\Course;
|
||||||
use App\Models\CourseClass;
|
use App\Models\CourseClass;
|
||||||
|
use App\Models\Lecturer;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
class CourseClassSeeder extends Seeder
|
class CourseClassSeeder extends Seeder
|
||||||
{
|
{
|
||||||
public function run(): void
|
public function run(): void
|
||||||
{
|
{
|
||||||
CourseClass::insert([
|
$academicTermId = AcademicTerm::where('is_active', true)->value('id')
|
||||||
[
|
?? AcademicTerm::query()->value('id');
|
||||||
'course_id' => 1,
|
|
||||||
'lecturer_id' => 1,
|
if (! $academicTermId) {
|
||||||
'academic_term_id' => 2,
|
return;
|
||||||
'method' => 'hybrid',
|
}
|
||||||
'created_at' => '2026-01-10 08:00:00',
|
|
||||||
'updated_at' => '2026-01-10 08:00:00',
|
Course::all()->each(function (Course $course) use ($academicTermId) {
|
||||||
],
|
$lecturer = Lecturer::whereHas('departments', fn ($q) => $q->where('departments.id', $course->department_id))
|
||||||
[
|
->inRandomOrder()
|
||||||
'course_id' => 2,
|
->first();
|
||||||
'lecturer_id' => 2,
|
|
||||||
'academic_term_id' => 2,
|
if (! $lecturer) {
|
||||||
'method' => 'offline',
|
return;
|
||||||
'created_at' => '2026-01-10 08:00:00',
|
}
|
||||||
'updated_at' => '2026-01-10 08:00:00',
|
|
||||||
],
|
CourseClass::create([
|
||||||
|
'course_id' => $course->id,
|
||||||
|
'lecturer_id' => $lecturer->id,
|
||||||
|
'academic_term_id' => $academicTermId,
|
||||||
|
'method' => fake()->randomElement(ClassMethod::values()),
|
||||||
]);
|
]);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user