class GekanatorQuestion < ApplicationRecord
  KINDS = ['tag', 'source', 'title', 'original_date', 'post_similarity'].freeze
  SOURCES = ['user_suggested', 'ai_generated', 'admin_curated'].freeze
  STATUSES = ['pending', 'accepted', 'rejected', 'disabled'].freeze

  belongs_to :gekanator_question_suggestion, optional: true
  belongs_to :created_by, class_name: 'User', optional: true
  has_many :gekanator_question_examples, dependent: :delete_all

  validates :kind, presence: true, inclusion: { in: KINDS }
  validates :source, presence: true, inclusion: { in: SOURCES }
  validates :status, presence: true, inclusion: { in: STATUSES }
  validates :text, presence: true, length: { maximum: 1000 }
  validates :condition, presence: true
  validates :priority_weight,
            presence: true,
            numericality: {
              greater_than: 0,
              less_than_or_equal_to: 3
            }

  scope :accepted, -> { where(status: 'accepted') }
end
