class ItemBank < ApplicationRecord
  # difficulty:  1 简单  2 适中  3 困难
  enum item_type: { SINGLE: 0, MULTIPLE: 1, JUDGMENT: 2, COMPLETION: 3, SUBJECTIVE: 4, PRACTICAL: 5, PROGRAM: 6 }
  # item_type:  0 单选  1 多选  2 判断  3 填空  4 简答  5 实训 6 编程

  belongs_to :user
  belongs_to :sub_discipline, optional: true

  has_one :item_analysis, dependent: :destroy
  has_many :item_choices, dependent: :destroy
  has_many :item_baskets, dependent: :destroy
  has_many :tag_discipline_containers, as: :container, dependent: :destroy
  has_many :tag_disciplines, through: :tag_discipline_containers

  belongs_to :container, polymorphic: true, optional: true

  def analysis
    item_analysis&.analysis
  end

  def apply?
    !public && ApplyAction.where(container_type: "ItemBank", container_id: id, status: 0).exists?
  end

  def type_string
    result = case item_type
             when "SINGLE"
               "单选题"
             when "MULTIPLE"
               "多选题"
             when "JUDGMENT"
               "判断题"
             when "COMPLETION"
               "填空题"
             when "SUBJECTIVE"
               "简答题"
             when "PRACTICAL"
               "实训题"
             when "PROGRAM"
               "编程题"
             end
    result
  end

  def difficulty_string
    result = case difficulty
             when 1
               "简单"
             when 2
               "适中"
             when 3
               "困难"
             end
    result
  end
end