summaryrefslogtreecommitdiff
path: root/app/models/label_link.rb
blob: a466fe693001d1a23d4f444e0cdaaca04b22359f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# frozen_string_literal: true

class LabelLink < ApplicationRecord
  include BulkInsertSafe
  include Importable

  belongs_to :target, polymorphic: true, inverse_of: :label_links # rubocop:disable Cop/PolymorphicAssociations
  belongs_to :label

  validates :target, presence: true, unless: :importing?
  validates :label, presence: true, unless: :importing?

  scope :for_target, -> (target_id, target_type) { where(target_id: target_id, target_type: target_type) }
  scope :with_remove_on_close_labels, -> { joins(:label).where(labels: { remove_on_close: true }) }
end