Small Cleanups + Merchandise Search
[cs356-p2-videostore.git] / app / models / purchase.rb
index e688f99..0f01813 100644 (file)
@@ -1,2 +1,28 @@
 class Purchase < ActiveRecord::Base
+  belongs_to :customer
+
+  validates_presence_of :customer_id
+  validates_presence_of :date
+  validates_presence_of :price
+  validates_numericality_of :price
+
+  def title
+    if self.class == MerchandisePurchase
+      return merchandise.title
+    elsif self.class == RentablePurchase
+      return rentable.title
+    elsif self.class == BonusPurchase
+      return rentable.title
+    else
+      return 'Late Fees'
+    end
+  end
+
+  protected
+  def validate
+    errors.add(:price, "cannot be negative") if price < 0
+    # Need to leave this out for bonuses
+    #errors.add(:price, "cannot be less than $0.01") if price < 0.01
+    errors.add(:customer_id, "does not exist in the database") if customer.nil?
+  end
 end