# frozen_string_literal: true

# License: AGPL-3.0-or-later WITH WTO-AP-3.0-or-later
# Full license explanation at https://github.com/houdiniproject/houdini/blob/master/LICENSE
class CustomFieldMaster < ApplicationRecord
  # :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