class Admission::ApplicantAgreement < ApplicationRecord
  include Admissions::ApplicantApplicationBroadcastable

  audited associated_with: :applicant

  belongs_to :applicant
  belongs_to :agreement

  validates :response, exclusion: { in: [nil], message: 'is required' }
  validate :check_required, unless: :response

  private
    def check_required
      if applicant.application.application_agreements.find_by(agreement: agreement).required
        errors.add(:base, 'You are required to agree')
      end
    end
end
