module MembersService class PlanBenefits def initialize(member) @member = member if @member.present? @plan_id = @member.id_card_plan_id else raise ArgumentError, "Member not found." end end def call plan_details = Baclight::IdCardPlan.joins(:baclight_id_card_plan_benefits) .select('id_card_plans.id, id_card_plans.title, id_card_plan_benefits.id, id_card_plan_benefits.sequence, id_card_plan_benefits.benefit, id_card_plan_benefits.benefit_desc') .where(id: @plan_id) .distinct { plan_details: plan_details, coverage_type: @member.coverage_class, effective_date: @member.eff_date, dependents: JSON.parse(@member.dependents) } end end end