X-Git-Url: https://irasnyder.com/gitweb/?a=blobdiff_plain;f=app%2Fmodels%2Fgame.rb;h=55639a7b7c27d5b457294d2b6e6312b7f4d395df;hb=d9ccb8cf52aee119343545cb734e185580daf352;hp=872b45ae2c2d90981ed761095f52a44d1ee66f12;hpb=56db4e1da35c068e247eadbd32edd0a09eb61127;p=cs356-p2-videostore.git diff --git a/app/models/game.rb b/app/models/game.rb index 872b45a..55639a7 100644 --- a/app/models/game.rb +++ b/app/models/game.rb @@ -1,15 +1,38 @@ class Game < Rentable - validates_presence_of :game_genre - validates_presence_of :platform + has_many :game_genres + has_many :game_platforms + + validates_presence_of :game_genre_id + validates_presence_of :game_platform_id + + def genre + GameGenre.find_by_id(game_genre_id) + end + + def platform + GamePlatform.find_by_id(game_platform_id) + end def calculated_price - # FIXME: generate this based on day of week, newrelase - return 11 + # FIXME: generate this based on day of week, newrelease + day_of_week = Time.now.to_date.wday + base_fee = GamePolicy.find_by_day(day_of_week).fee + + # Check for newrelease + newrelease_fee = newrelease ? GamePolicy.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 - return Time.now.advance(:days => 2).to_date + # 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 = GamePolicy.find_by_day(day_of_week).period + newrelease_period = newrelease ? GamePolicy.find_by_day(8).period : 0 + + period = base_period + newrelease_period + return Time.now.advance(:days => period).to_date end end