private function prepareQuery(RESTApiRequest $request)
 {
     $raw_karaoke = $this->manager->getRawAll();
     $search = $request->getSearch();
     if ($search !== null) {
         $raw_karaoke->like(array('karaoke.name' => '%' . $search . '%', 'karaoke.singer' => '%' . $search . '%', 'karaoke_genre.title' => '%' . $search . '%'), 'OR');
     }
     if (!empty($this->genres_ids)) {
         $raw_karaoke->in('genre_id', $this->genres_ids);
     }
     if (!empty($this->karaoke_id)) {
         $raw_karaoke->where(array('karaoke.id' => $this->karaoke_id));
     }
     return $raw_karaoke;
 }
 private function prepareQuery(RESTApiRequest $request)
 {
     $raw_videos = $this->manager->getRawAll();
     $search = $request->getSearch();
     if ($search !== null) {
         $raw_videos->like(array('video.name' => '%' . $search . '%', 'o_name' => '%' . $search . '%', 'actors' => '%' . $search . '%', 'director' => '%' . $search . '%', 'year' => '%' . $search . '%'), 'OR');
     }
     if ($request->getParam('mark') == 'favorite') {
         $raw_videos->in('id', $this->favorites);
     } elseif ($request->getParam('mark') == 'not_ended') {
         $raw_videos->in('id', array_keys($this->not_ended));
     }
     if (!empty($this->video_id)) {
         $raw_videos->where(array('id' => $this->video_id));
     }
     if (!empty($this->genres_ids)) {
         $raw_videos->group_in(array('cat_genre_id_1' => $this->genres_ids, 'cat_genre_id_2' => $this->genres_ids, 'cat_genre_id_3' => $this->genres_ids, 'cat_genre_id_4' => $this->genres_ids), 'OR');
     }
     return $raw_videos;
 }