/**
  * @param string|int $group_name
  * @param string $cond
  * @return LessonModel[]|array
  */
 public static function getAllByGroupNameOrGroupId($group_name, $cond = "")
 {
     $group_name = mb_strtolower($group_name, "UTF-8");
     $group_name = str_replace(array_values(GroupModel::$replace), array_keys(GroupModel::$replace), $group_name);
     /** @var PDO $db */
     $db = Registry::get('db');
     $group_id = $db->query("\r\n            SELECT group_id FROM " . GroupModel::TABLE . "\r\n                WHERE (group_full_name = " . $db->quote($group_name) . " OR group_id = " . $db->quote($group_name) . ")\r\n        ")->fetchColumn();
     $count = $db->query("\r\n            SELECT COUNT(*) FROM " . LessonModel::TABLE . "\r\n                WHERE (group_id = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond}\r\n        ")->fetchColumn();
     $result = array();
     if ($count > 0) {
         $query = $db->query("\r\n                SELECT * FROM " . LessonModel::TABLE . "\r\n                    WHERE (group_id  = '{$group_id}' OR group_id = " . $db->quote($group_name) . ") {$cond} ORDER BY lesson_week,day_number,lesson_number ASC\r\n            ");
         while ($data = $query->fetch(PDO::FETCH_ASSOC)) {
             $lessonModel = new LessonModel();
             $lessonModel->unpack($data);
             $lessonModel->teachers = TeacherModel::getAllByLessonId($lessonModel->lesson_id);
             //enable duplicate filter
             $lessonModel->teachers = TeacherModel::teachersDuplicateFilter($lessonModel->teachers);
             //load rooms
             $lessonModel->rooms = RoomModel::getAllByLessonId($lessonModel->lesson_id);
             $result[] = $lessonModel->toArray();
         }
     } else {
         throw new ApiException("Lessons not found");
     }
     return $result;
 }