houdini/app/models/campaign_gift_option.rb

36 lines
998 B
Ruby
Raw Normal View History

# License: AGPL-3.0-or-later WITH Web-Template-Output-Additional-Permission-3.0-or-later
class CampaignGiftOption < ActiveRecord::Base
attr_accessible \
:amount_one_time, #int (cents)
:amount_recurring, #int (cents)
:amount_dollars, #str, gets converted to amount
:description, # text
:name, # str
:campaign, #assocation
:quantity, #int (optional)
:to_ship, #boolean
:order, #int (optional)
:hide_contributions #boolean (optional)
belongs_to :campaign
has_many :campaign_gifts
has_many :donations, through: :campaign_gifts
validates :name, presence: true
validates :campaign, presence: true
validates :amount_one_time, presence: true, numericality: { only_integer: true }, unless: :amount_recurring
validates :amount_recurring, presence: true, numericality: { only_integer: true }, unless: :amount_one_time
def total_gifts
return self.campaign_gifts.count
end
def as_json(options={})
h = super(options)
h[:total_gifts] = self.total_gifts
h
end
end