# frozen_string_literal: true require "value_semantics/monkey_patched" class AdminFinancialInfo value_semantics do transactions ArrayOf(CustomerFinancials::TransactionInfo) declines Integer btc_addresses ArrayOf(String) payment_methods PaymentMethods end def self.for(customer) EMPromise.all([ customer.transactions, customer.declines, customer.payment_methods, customer.btc_addresses ]).then do |transactions, declines, payment_methods, btc_addresses| new( transactions: transactions, declines: declines, payment_methods: payment_methods, btc_addresses: btc_addresses ) end end end