2026-07-23 10:41:46 -04:00
|
|
|
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
|
2026-09-16 12:41:44 -04:00
|
|
|
plan_details = Baclight::IdCardPlan.joins(:baclight_id_card_plan_benefits)
|
2026-07-23 10:41:46 -04:00
|
|
|
.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
|
2026-09-16 12:41:44 -04:00
|
|
|
{
|
|
|
|
|
plan_details: plan_details,
|
|
|
|
|
coverage_type: @member.coverage_class,
|
|
|
|
|
effective_date: @member.eff_date,
|
|
|
|
|
dependents: JSON.parse(@member.dependents)
|
|
|
|
|
}
|
2026-07-23 10:41:46 -04:00
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
end
|