defmodule Plaid.Item.Status do @moduledoc """ [Plaid item status schema.](https://plaid.com/docs/api/items/#item-get-response-status) """ @behaviour Plaid.Castable alias Plaid.Castable alias Plaid.Item.Status.{ Investments, LastWebhook, Transactions } @type t :: %__MODULE__{ investments: Investments.t() | nil, transactions: Transactions.t() | nil, last_webhook: LastWebhook.t() | nil } defstruct [ :investments, :transactions, :last_webhook ] @impl true def cast(generic_map) do %__MODULE__{ investments: Castable.cast(Investments, generic_map["investments"]), transactions: Castable.cast(Transactions, generic_map["transactions"]), last_webhook: Castable.cast(LastWebhook, generic_map["last_webhook"]) } end end