defmodule Requests.Payments.Payment.Sender do
@moduledoc false
@type identification :: %{
type: String.t(),
number: String.t(),
issuing_country: <<_::2>>
}
@type t :: %__MODULE__{
type: String.t(),
first_name: String.t(),
last_name: String.t(),
dob: String.t(),
address: BillingAddress.t(),
identification: identification()
}
@enforce_keys [:type, :first_name, :last_name, :address]
defstruct [
:type,
:first_name,
:last_name,
:dob,
:address,
:identification,
:reference
]
def build(params) when is_map(params) do
%{
type: params[:type],
first_name: params[:first_name],
last_name: params[:last_name],
dob: params[:dob],
address: params[:address],
identification: params[:identification],
reference: params[:reference]
}
end
def build(_), do: nil
end