27 lines
449 B
Ruby
27 lines
449 B
Ruby
class ProductInCheckout
|
|
def initialize(product:, quantity: 0)
|
|
@product = product
|
|
@quantity = quantity
|
|
end
|
|
|
|
def product_id
|
|
@product.id
|
|
end
|
|
|
|
def quantity
|
|
@quantity
|
|
end
|
|
|
|
def add_quantity(quantity)
|
|
@quantity += quantity
|
|
end
|
|
|
|
def remove_quantity(quantity)
|
|
@quantity = [@quantity - quantity, 0].max
|
|
end
|
|
|
|
def total
|
|
(@product.price * quantity) - @product.discount.discount_for_quantity(@quantity)
|
|
end
|
|
end
|