1# frozen_string_literal: true
 2
 3require_relative "../admin_action"
 4require_relative "../financial_info"
 5require_relative "../form_template"
 6
 7class AdminAction
 8	class Financial
 9		def self.call(customer_id, reply:, **)
10			new(customer_id, reply: reply).call
11		end
12
13		def initialize(customer_id, reply:)
14			@customer_id = customer_id
15			@reply = reply
16		end
17
18		def call
19			AdminFinancialInfo.for(@customer_id).then do |financial_info|
20				@reply.call(FormTemplate.render(
21					"admin_financial_info",
22					info: financial_info
23				)).then {
24					pay_methods(financial_info)
25				}.then {
26					transactions(financial_info)
27				}
28			end
29		end
30
31		def pay_methods(financial_info)
32			@reply.call(FormTemplate.render(
33				"admin_payment_methods",
34				**financial_info.to_h
35			))
36		end
37
38		def transactions(financial_info)
39			@reply.call(FormTemplate.render(
40				"admin_transaction_list",
41				transactions: financial_info.transactions
42			))
43		end
44	end
45end