import { pick } from 'lodash' import { PaymentProviders } from '../../../../models/enums' import { DEFAULT_INSTALLMENTS_AMOUNT, Plan, PlanFeature } from '../../../../models' import { LegacyPlanResultProperties, PlanResult } from '../types' export const planToPlanResult = ( plan: Plan, paymentProvider: PaymentProviders, features: Array, ): PlanResult => { const planPaymentProvider = plan.getPaymentProvider(paymentProvider) if (!planPaymentProvider) return null const legacyProperties: LegacyPlanResultProperties = { code: planPaymentProvider?.code, addon_code: planPaymentProvider?.code, addon_id: planPaymentProvider?.smartfit_id, last_digits_card_number: null, order: plan.order, trial_interval: plan.trial_interval, url: '', } return { ...pick(plan, 'id', 'name', 'interval', 'trial_value'), ...legacyProperties, features: features.map(planFeature => pick(planFeature, 'feature', 'description', 'quantity')), payment_provider: paymentProvider, amount: planPaymentProvider?.amount, from_amount: planPaymentProvider?.from_amount, installments: planPaymentProvider?.installments || DEFAULT_INSTALLMENTS_AMOUNT, code: planPaymentProvider?.code, new_card_required: false, } }