class Customer < ActiveRecord::Base
has_many :coitems
- has_many :bitems
-
- has_many_polymorphs :purchaseables, :from => [:coitems, :bitems], :through => :purchases
+ has_many :merchandise_purchases
+ has_many :rentable_purchases
validates_presence_of :name, :email, :phone, :address
validates_numericality_of :debt
+ def checked_out_videos
+ coitems = Coitem.find_all_by_customer_id(id)
+ video_count = 0
+
+ for item in coitems
+ if item.rentable.class == Video
+ video_count += 1
+ end
+ end
+
+ return video_count
+ end
+
+ def checked_out_games
+ coitems = Coitem.find_all_by_customer_id(id)
+ game_count = 0
+
+ for item in coitems
+ if item.rentable.class == Game
+ game_count += 1
+ end
+ end
+
+ return game_count
+ end
+
+ def overdue_videos
+ coitems = Coitem.find_all_by_customer_id(id)
+ overdue_video_count = 0
+
+ for item in coitems
+ if item.rentable.class == Video and item.overdue?
+ overdue_video_count += 1
+ end
+ end
+
+ return overdue_video_count
+ end
+
+ def overdue_games
+ coitems = Coitem.find_all_by_customer_id(id)
+ overdue_game_count = 0
+
+ for item in coitems
+ if item.rentable.class == Game and item.overdue?
+ overdue_game_count += 1
+ end
+ end
+
+ return overdue_game_count
+ end
+
protected
def validate