1 class Customer < ActiveRecord::Base
3 has_many :merchandise_purchases
4 has_many :rentable_purchases
5 has_many :bonus_purchases
6 has_many :late_fee_purchases
8 validates_presence_of :name, :email, :phone, :address
9 validates_numericality_of :debt
11 def checked_out_videos
12 coitems = Coitem.find_all_by_customer_id(id)
16 if item.rentable.class == Video
25 coitems = Coitem.find_all_by_customer_id(id)
29 if item.rentable.class == Game
38 coitems = Coitem.find_all_by_customer_id(id)
39 overdue_video_count = 0
42 if item.rentable.class == Video and item.overdue?
43 overdue_video_count += 1
47 return overdue_video_count
51 coitems = Coitem.find_all_by_customer_id(id)
52 overdue_game_count = 0
55 if item.rentable.class == Game and item.overdue?
56 overdue_game_count += 1
60 return overdue_game_count
66 errors.add(:debt, "should be non-negative") if debt.nil? || debt < 0.00
67 errors.add(:email, "is invalid") unless email =~ /.+@.+\..+/
68 errors.add(:phone, "has invalid format, use XXX-XXX-XXXX") unless phone =~ /^\d{3}-\d{3}-\d{4}$/