# frozen_string_literal: true

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class CustomFieldMaster < ApplicationRecord
  # attr_accessible \
  #   :nonprofit, :nonprofit_id,
  #   :name,
  #   :deleted,
  #   :created_at

  validates :name, presence: true
  validate :no_dupes, on: :create

  belongs_to :nonprofit
  has_many :custom_field_joins, dependent: :destroy

  scope :not_deleted, -> { where(deleted: [nil, false]) }

  def no_dupes
    return self if nonprofit.nil?

    errors.add(:base, 'Duplicate custom field') if nonprofit.custom_field_masters.not_deleted.where(name: name).any?
  end
end