# frozen_string_literal: true module PermittedAttributes class Subscription def initialize(params) @params = params end def call return {} if @params[:subscription].blank? @params.require(:subscription).permit(basic_permitted_attributes + other_permitted_attributes) end private def basic_permitted_attributes [ :id, :shop_id, :schedule_id, :customer_id, :payment_method_id, :shipping_method_id, :begins_at, :ends_at, :canceled_at, :paused_at, :shipping_fee_estimate, :payment_fee_estimate, ] end def other_permitted_attributes [ subscription_line_items_attributes: [ :id, :quantity, :variant_id, :price_estimate, :_destroy ], bill_address_attributes: PermittedAttributes::Address.attributes, ship_address_attributes: PermittedAttributes::Address.attributes ] end end end