defmodule Requests.Payments.Destinations do
alias Requests.Payments.Destinations.{BankAccount, BankPayoutId, Card, Id, Token}
alias Requests.Payments.Destinations.Holders.{
CorporateAccount,
GovernmentAccount,
IndividualAccount
}
def build(%{type: "card"} = params), do: Card.build(params)
def build(%{type: "id"} = params), do: Id.build(params)
def build(%{type: "token"} = params), do: Token.build(params)
def build(%{type: "corporate_account"} = params), do: CorporateAccount.build(params)
def build(%{type: "government_account"} = params), do: GovernmentAccount.build(params)
def build(%{type: "individual_account"} = params), do: IndividualAccount.build(params)
def build(_), do: nil
def build_bank_payout_destination(%{type: "bank_account"} = params),
do: BankAccount.build(params)
def build_bank_payout_destination(%{type: "id"} = params), do: BankPayoutId.build(params)
def build_bank_payout_destination(_), do: nil
end