lib/requests/payments/senders/identification.ex

defmodule Requests.Payments.Senders.Identification do
  @type t :: %__MODULE__{
          type: String.t(),
          number: String.t(),
          issuing_country: String.t(),
          date_of_expiry: String.t()
        }

  @enforce_keys [:number, :type]
  defstruct [
    :type,
    :number,
    :issuing_country,
    :date_of_expiry
  ]

  def build(%{type: type, number: number} = params) when is_map(params) do
    %{
      type: type,
      number: number,
      issuing_country: params[:issuing_country],
      date_of_expiry: params[:date_of_expiry]
    }
  end

  def build(_), do: nil
end