json.single_questions do
  json.questions @single_questions.each do |question|
    json.(question, :id, :position, :score, :item_type)
    json.partial! "item_banks/item", locals: {item: question}
  end
  json.questions_score @single_questions.map(&:score).sum
  json.questions_count @single_questions.size
end

json.multiple_questions do
  json.questions @multiple_questions.each do |question|
    json.(question, :id, :position, :score, :item_type)
    json.partial! "item_banks/item", locals: {item: question}
  end
  json.questions_score @multiple_questions.map(&:score).sum
  json.questions_count @multiple_questions.size
end

json.judgement_questions do
  json.questions @judgement_questions.each do |question|
    json.(question, :id, :position, :score, :item_type)
    json.partial! "item_banks/item", locals: {item: question}
  end
  json.questions_score @judgement_questions.map(&:score).sum
  json.questions_count @judgement_questions.size
end

json.program_questions do
  json.questions @program_questions.each do |question|
    json.(question, :id, :position, :score, :item_type)
    json.partial! "item_banks/item", locals: {item: question}
  end
  json.questions_score @program_questions.map(&:score).sum
  json.questions_count @program_questions.size
end

json.exam do
  json.(@exam, :id, :name, :difficulty, :sub_discipline_id, :duration)
  json.all_score @items.map(&:score).sum
  json.all_questions_count @items.size

  json.discipline do
    if @exam.sub_discipline&.discipline.present?
      json.(@exam.sub_discipline&.discipline, :id, :name)
    end
  end
  json.sub_discipline do
    if @exam.sub_discipline.present?
      json.(@exam.sub_discipline, :id, :name)
    end
  end
  json.tag_disciplines @exam.tag_disciplines do |tag|
    json.(tag, :id, :name)
  end
end