36 lines
793 B
Ruby
36 lines
793 B
Ruby
module JamRuby
|
|
class GiftCard < ActiveRecord::Base
|
|
|
|
@@log = Logging.logger[GiftCard]
|
|
|
|
JAM_TRACKS_10 = 'jam_tracks_10'
|
|
JAM_TRACKS_20 = 'jam_tracks_20'
|
|
CARD_TYPES =
|
|
[
|
|
JAM_TRACKS_10,
|
|
JAM_TRACKS_20
|
|
]
|
|
|
|
|
|
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 && user_id_changed?
|
|
if card_type == JAM_TRACKS_10
|
|
user.gifted_jamtracks += 10
|
|
elsif card_type == JAM_TRACKS_20
|
|
user.gifted_jamtracks += 20
|
|
else
|
|
raise "unknown card type #{card_type}"
|
|
end
|
|
user.save!
|
|
end
|
|
end
|
|
end
|
|
end
|