class SubscriptionFu::Plan
  include ActionView::Helpers::NumberHelper  # for number_to_currency
  include Comparable

  TAX = 0.05

  attr_accessor :key
  attr_accessor :price

  def initialize(key, price, data = {})
    self.key = key
    self.price = price
    data.each {|k,v| self.send("#{k}=", v) }
  end

  def human_name
    I18n.t(key, :scope => [:subscription_fu, :plan, :options])
  end

  def human_price
    number_to_currency(price_with_tax)
  end

  def free_plan?
    price == 0
  end

  def price_with_tax
    (price * (1.0 + TAX)).to_i
  end

  def price_tax
    (price * TAX).to_i
  end

  def currency
    "JPY"
  end

  def <=>(other)
    price <=> other.price
  end
end