module Fundraising
  class Campaign < ApplicationRecord
    has_many :donations

    def progress_percent
      [(progress.to_f / goal) * 100, 100].min
    end

    def remaining
      goal - progress
    end

    def complete?
      progress >= goal
    end

    def self.current
      self.where(active: true).first or
        raise ActiveRecord::RecordNotFound.new("no current campaign")
    end
  end
end