X-Git-Url: https://irasnyder.com/gitweb/?a=blobdiff_plain;f=app%2Fmodels%2Fvideo.rb;h=b20602af2c1a366d963dfc78b34d9fb91bd9ab9d;hb=233a6b122bc4aed44a0babee0797d2dba6da5b06;hp=abf0de38155ed8f7e23d4a34d79dd94666ce8cc0;hpb=d13e443cd5c78d0d4d5053202a70a251b3e6d111;p=cs356-p2-videostore.git diff --git a/app/models/video.rb b/app/models/video.rb index abf0de3..b20602a 100644 --- a/app/models/video.rb +++ b/app/models/video.rb @@ -1,12 +1,44 @@ class Video < Rentable has_many :video_genres + has_many :medias validates_presence_of :director validates_presence_of :video_genre validates_presence_of :media + def genre + return Videogenre.find(video_genre).name + end + + def media_name + return Media.find(media).name + end + + def calculated_price + # FIXME: generate this based on day of week, newrelease + day_of_week = Time.now.to_date.wday + base_fee = VideoPolicy.find_by_day(day_of_week).fee + + # Check for newrelease + newrelease_fee = newrelease ? VideoPolicy.find_by_day(8).fee : 0.00 + + return base_fee + newrelease_fee + end + + def due_date + # FIXME: generate this based on the day of week, newrelease + # NOTE: a Date.wday will tell you the day of week (0-6, meaning Sunday-Saturday) + day_of_week = Time.now.to_date.wday + base_period = VideoPolicy.find_by_day(day_of_week).period + newrelease_period = newrelease ? VideoPolicy.find_by_day(8).period : 0 + + period = base_period + newrelease_period + return Time.now.advance(:days => period).to_date + end + protected def validate errors.add(:video_genre, "does not exist in the database") if video_genre.nil? + errors.add(:media, "does not exist in the database") if media.nil? end end