class Users::SubjectsController < Users::BaseController
  def index
    subjects = Users::SubjectService.new(observed_user, query_params).call

    ## 云上实验室过滤
    if current_laboratory.main_site?
      not_subject_ids = Subject.joins(:laboratory_subjects).where("laboratory_subjects.laboratory_id != #{current_laboratory.id}")
      subjects = subjects.where.not(id: not_subject_ids)
    else
      subjects = subjects.joins(:laboratory_subjects).where(laboratory_subjects: { laboratory_id: current_laboratory.id })
    end

    @count = subjects.count
    @subjects = paginate(subjects.includes(:user, :repertoire), special: observed_user.is_teacher?)
  end

  private

  def query_params
    params.permit(:category, :status, :sort_direction)
  end
end