1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-10 21:24:20 +01:00
fab-manager/app/models/cart_item/prepaid_pack.rb

49 lines
870 B
Ruby

# frozen_string_literal: true
# A prepaid-pack added to the shopping cart
class CartItem::PrepaidPack < CartItem::BaseItem
def initialize(pack, customer)
raise TypeError unless pack.is_a? PrepaidPack
@pack = pack
@customer = customer
super
end
def pack
raise InvalidGroupError if @pack.group_id != @customer.group_id
@pack
end
def price
amount = pack.amount
elements = { pack: amount }
{ elements: elements, amount: amount }
end
def name
"#{@pack.minutes / 60} h"
end
def to_object
::StatisticProfilePrepaidPack.new(
prepaid_pack_id: @pack.id,
statistic_profile_id: StatisticProfile.find_by(user: @customer).id
)
end
def type
'pack'
end
def valid?(_all_items)
if @pack.disabled
@errors[:item] = 'pack is disabled'
return false
end
true
end
end