module Fundraising
  class DonationFeature < ApplicationRecord
    belongs_to :donation
    belongs_to :outfit, optional: true

    validates :outfit, presence: true, if: :outfit_id_present?

    delegate :donor_name, to: :donation

    def as_json(options={})
      {donor_name: donor_name, outfit_image_url: outfit_image_url}
    end

    def outfit_url=(outfit_url)
      self.outfit_id = outfit_url.split('/').last rescue nil
    end

    def outfit_id_present?
      outfit_id.present?
    end

    def outfit_image_url
      outfit && outfit.image ? outfit.image.medium.url : nil
    end
  end
end