defmodule Plaid.Processor.Numbers do @moduledoc """ [Plaid Processor Numbers schema](https://plaid.com/docs/api/processors/#processorauthget). """ @behaviour Plaid.Castable alias Plaid.Auth.Numbers.{ACH, BACS, EFT, International} alias Plaid.Castable @type t :: %__MODULE__{ ach: ACH.t(), eft: EFT.t(), international: International.t(), bacs: BACS.t() } defstruct [ :ach, :eft, :international, :bacs ] @impl true def cast(generic_map) do %__MODULE__{ ach: Castable.cast(ACH, generic_map["ach"]), eft: Castable.cast(EFT, generic_map["eft"]), international: Castable.cast(International, generic_map["international"]), bacs: Castable.cast(BACS, generic_map["bacs"]) } end end