Files
openfoodnetwork/app/serializers/api/admin/subscription_line_item_serializer.rb
2023-06-09 16:39:29 +09:00

38 lines
949 B
Ruby

# frozen_string_literal: true
module Api
module Admin
class SubscriptionLineItemSerializer < ActiveModel::Serializer
attributes :id, :variant_id, :quantity, :description, :price_estimate,
:in_open_and_upcoming_order_cycles
def description
"#{object.variant.product.name} - #{object.variant.full_name}"
end
def price_estimate
object.price_estimate&.to_f || "?"
end
def in_open_and_upcoming_order_cycles
OrderManagement::Subscriptions::VariantsList
.in_open_and_upcoming_order_cycles?(
option_or_assigned_shop,
option_or_assigned_schedule,
object.variant
)
end
private
def option_or_assigned_shop
@options[:shop] || object.subscription&.shop
end
def option_or_assigned_schedule
@options[:schedule] || object.subscription&.schedule
end
end
end
end