# frozen_string_literal: true
class Question < ApplicationRecord
  serialize :input_options

  has_many :answers
  belongs_to :quiz

  after_initialize :prepare_input_options
  before_validation :compact_input_options

  validates :quiz_id, presence: true
  validates :question, presence: true
  validates :category, presence: true
  validates :input_type, presence: true
  validates :input_options, input_options_presence: true

  private

    def compact_input_options
      self.input_options = input_options.reject { |_k, v| v.blank? } if input_options.class == Hash
      self.input_options = input_options.reject(&:blank?) if input_options.class == Array
    end

    def prepare_input_options
      self.input_options = input_options || {}
    end
end
