Many visual tweaks, suggested by Lan
[cs356-p2-videostore.git] / app / models / game.rb
1 class Game < Rentable
2   has_many :game_genres, :through => Gamegenre
3   has_many :gameplatforms, :through => Gameplatform
4
5   validates_presence_of :game_genre
6   validates_presence_of :platform
7
8   def genre
9     return Gamegenre.find(game_genre).name
10   end
11
12   def game_platform
13     return Gameplatform.find(platform).name
14   end
15
16   def calculated_price
17     # FIXME: generate this based on day of week, newrelease
18     day_of_week = Time.now.to_date.wday
19     base_fee = GamePolicy.find_by_day(day_of_week).fee
20
21     # Check for newrelease
22     newrelease_fee = newrelease ? GamePolicy.find_by_day(8).fee : 0.00
23
24     return base_fee + newrelease_fee
25   end
26
27   def due_date
28     # FIXME: generate this based on the day of week, newrelease
29     # NOTE: a Date.wday will tell you the day of week (0-6, meaning Sunday-Saturday)
30     day_of_week = Time.now.to_date.wday
31     base_period = GamePolicy.find_by_day(day_of_week).period
32     newrelease_period = newrelease ? GamePolicy.find_by_day(8).period : 0
33
34     period = base_period + newrelease_period
35     return Time.now.advance(:days => period).to_date
36   end
37
38   def genre_name
39     Gamegenre.find_by_id(game_genre).name
40   end
41
42   def platform_name
43     Gameplatform.find_by_id(platform).name
44   end
45
46 end