37ade2a988
Reviewed-on: #362 Co-authored-by: miteruzo <miteruzo@naver.com> Co-committed-by: miteruzo <miteruzo@naver.com>
24 行
966 B
Ruby
24 行
966 B
Ruby
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
|