defmodule Plaid.AssetReport.User do
@moduledoc """
[Plaid Asset Report User schema.](https://plaid.com/docs/api/products/#asset_report-create-request-user)
"""
@behaviour Plaid.Castable
@type t :: %__MODULE__{
client_user_id: String.t(),
first_name: String.t(),
middle_name: String.t(),
last_name: String.t(),
ssn: String.t(),
phone_number: String.t(),
email: String.t()
}
@derive Jason.Encoder
defstruct [
:client_user_id,
:first_name,
:middle_name,
:last_name,
:ssn,
:phone_number,
:email
]
@impl true
def cast(generic_map) do
%__MODULE__{
client_user_id: generic_map["client_user_id"],
first_name: generic_map["first_name"],
middle_name: generic_map["middle_name"],
last_name: generic_map["last_name"],
ssn: generic_map["ssn"],
phone_number: generic_map["phone_number"],
email: generic_map["email"]
}
end
end