where('lesson_name', 'like', '%' . $lessonName . '%'); } // Lấy dữ liệu chính $data = $query->orderByDesc('created_at') ->skip($offset) ->take($limit) ->get() ->map(function ($item) { $item->level = match ((int)$item->level) { 0 => 'easy', 1 => 'normal', 2 => 'hard', default => 'unknown', }; return $item; }); return $data; } public function createExercise($dataExercise) { $dataCreateExercise = [ 'lesson_name' => $dataExercise['name'] ?? null, 'description' => $dataExercise['description'] ?? null, 'subject_id' => $dataExercise['subject_id'] ?? null, 'level' => $dataExercise['level'] ?? null, 'status' => $dataExercise['status'] ?? null, 'category_id' => $dataExercise['category_id'] ?? null, 'year' => $dataExercise['year'] ?? null, ]; $exercise = Exercise::create($dataCreateExercise); return $exercise->id; } public function detail($id) { $exercise = Exercise::with([ 'skills:id,name', 'questionGroups' => function ($q) { $q->select('id', 'exercise_id', 'content'); }, 'questionGroups.questions' => function ($q) { $q->select('id', 'content', 'group_id', 'question_type_id', 'description', 'score', 'explanation', 'hint'); }, 'questionGroups.questions.type:id,code,name', 'questionGroups.questions.choices', 'questionGroups.questions.blanks', ])->findOrFail($id); return new ExerciseResource($exercise); } }