37 lines
845 B
Ruby
37 lines
845 B
Ruby
# represents the gift card you hold in your hand
|
|
module JamRuby
|
|
class GiftCard < ActiveRecord::Base
|
|
|
|
@@log = Logging.logger[GiftCard]
|
|
|
|
JAM_TRACKS_5 = 'jam_tracks_5'
|
|
JAM_TRACKS_10 = 'jam_tracks_10'
|
|
CARD_TYPES =
|
|
[
|
|
JAM_TRACKS_5,
|
|
JAM_TRACKS_10
|
|
]
|
|
|
|
|
|
belongs_to :user, class_name: "JamRuby::User"
|
|
|
|
validates :card_type, presence: true, inclusion: {in: CARD_TYPES}
|
|
validates :code, presence: true, uniqueness: true
|
|
|
|
after_save :check_gifted
|
|
|
|
def check_gifted
|
|
if user && saved_change_to_user_id?
|
|
if card_type == JAM_TRACKS_5
|
|
user.gifted_jamtracks += 5
|
|
elsif card_type == JAM_TRACKS_10
|
|
user.gifted_jamtracks += 10
|
|
else
|
|
raise "unknown card type #{card_type}"
|
|
end
|
|
user.save!
|
|
end
|
|
end
|
|
end
|
|
end
|