jam-cloud/ruby/lib/jam_ruby/models/lesson_package_purchase.rb

49 lines
1.4 KiB
Ruby

# represents the purchase of a LessonPackage
module JamRuby
class LessonPackagePurchase < ActiveRecord::Base
@@log = Logging.logger[LessonPackagePurchase]
def name
lesson_package_type.sale_display
end
# who purchased the lesson package?
belongs_to :user, class_name: "JamRuby::User", :foreign_key => "user_id", inverse_of: :lesson_purchases
belongs_to :lesson_package_type, class_name: "JamRuby::LessonPackageType"
belongs_to :teacher, class_name: "JamRuby::Teacher"
validates :lesson_package_type, presence: true
validates :price, presence: true
after_save :after_save
def after_save
if self.lesson_package_type.is_test_drive?
new_test_drives = user.remaining_test_drives + 4
User.where(id:user.id).update_all(remaining_test_drives: new_test_drives)
user.remaining_test_drives = user.remaining_test_drives + 4
end
end
def self.create(user, lesson_package_type, lesson_booking)
purchase = LessonPackagePurchase.new
purchase.user = user
purchase.lesson_package_type = lesson_package_type
purchase.price = lesson_package_type.booked_price(lesson_booking)
purchase.save
purchase
end
def price_in_cents
(price * 100).to_i
end
def description(lesson_booking)
lesson_package_type.description(lesson_booking)
end
end
end