getSort(); $page = $pagerQuery->getPage(); $limit = $pagerQuery->getLimit(); $params = [ 'start_time' => strtotime('today'), 'published' => 1, ]; $chapterLiveRepo = new ChapterLiveRepo(); $pager = $chapterLiveRepo->paginate($params, $sort, $page, $limit); return $this->handleLives($pager); } protected function handleLives($pager) { if ($pager->total_items == 0) { return $pager; } $builder = new LiveListBuilder(); $lives = $pager->items->toArray(); $courses = $builder->getCourses($lives); $chapters = $builder->getChapters($lives); $items = []; foreach ($lives as $live) { $course = $courses[$live['course_id']] ?? new \stdClass(); $chapter = $chapters[$live['chapter_id']] ?? new \stdClass(); $items[] = [ 'id' => $live['id'], 'status' => $live['status'], 'start_time' => $live['start_time'], 'end_time' => $live['end_time'], 'course' => $course, 'chapter' => $chapter, ]; } $pager->items = $items; return $pager; } }