class EmailAddress < ApplicationRecord
  belongs_to :school
  belongs_to :associated, polymorphic: true, optional: true

  validates :address, :primary, presence: true
  validates :address, uniqueness: { scope: :school_id }
  validates :address, format: /.+@.+\.{1}.{2,}/

  after_initialize :set_school_id, if: :new_record?

  def suppression
    Sparkpost::SuppressionService.call(:get, address)
  end

  def remove_suppression
    Sparkpost::SuppressionService.call(:remove, address)
  end

  private
    def set_school_id
      self.school_id = associated.school_id
    end
end
