37 lines
770 B
Ruby
37 lines
770 B
Ruby
module JamRuby
|
|
class GiftCard < ActiveRecord::Base
|
|
|
|
@@log = Logging.logger[GiftCard]
|
|
|
|
FIVE_JAM_TRACKS = 'five_jam_tracks'
|
|
TEN_JAM_TRACKS = 'ten_jam_tracks'
|
|
CARD_TYPES =
|
|
[
|
|
FIVE_JAM_TRACKS,
|
|
TEN_JAM_TRACKS
|
|
]
|
|
|
|
|
|
belongs_to :user, class_name: "JamRuby::User"
|
|
|
|
validates :card_type, presence: true, inclusion: {in: CARD_TYPES}
|
|
validates :redeemed, inclusion: {in: [true, false]}
|
|
validates :code, presence: true, uniqueness: true
|
|
|
|
def redeem(user)
|
|
|
|
transaction do
|
|
update({redeemed: true, user: user})
|
|
|
|
if card_type == FIVE_JAM_TRACK
|
|
user.red
|
|
elsif card_type == TEN_JAM_TRACK
|
|
else
|
|
raise 'unknown type'
|
|
end
|
|
end
|
|
end
|
|
|
|
end
|
|
end
|