# == Schema Information
#
# Table name: user_mutes
#
#  id         :bigint(8)        not null, primary key
#  owner_id   :bigint(8)        not null
#  subject_id :bigint(8)        not null
#  created_at :datetime         not null
#  updated_at :datetime         not null
#
# Indexes
#
#  index_user_mutes_on_owner_id_and_subject_id  (owner_id,subject_id) UNIQUE
#
# Foreign Keys
#
#  fk_rails_...  (owner_id => users.id)
#  fk_rails_...  (subject_id => users.id)
#
class UserMute < ApplicationRecord
  belongs_to :owner, :class_name => "User"
  belongs_to :subject, :class_name => "User"

  validates :subject, :uniqueness => { :scope => :owner_id, :message => :is_already_muted }

  def self.active?(owner:, subject:)
    !subject.administrator? &&
      !subject.moderator? &&
      exists?(
        :owner => owner,
        :subject => subject
      )
  end
end
