defmodule Plaid.Transactions.Transaction.Location do
@moduledoc """
[Plaid Transaction Location schema.](https://plaid.com/docs/api/products/#transactions-get-response-location]
"""
@behaviour Plaid.Castable
@type t :: %__MODULE__{
address: String.t() | nil,
city: String.t() | nil,
region: String.t() | nil,
postal_code: String.t() | nil,
country: String.t() | nil,
lat: number() | nil,
lon: number() | nil,
store_number: String.t() | nil
}
defstruct [
:address,
:city,
:region,
:postal_code,
:country,
:lat,
:lon,
:store_number
]
@impl true
def cast(generic_map) do
%__MODULE__{
address: generic_map["address"],
city: generic_map["city"],
region: generic_map["region"],
postal_code: generic_map["postal_code"],
country: generic_map["country"],
lat: generic_map["lat"],
lon: generic_map["lon"],
store_number: generic_map["store_number"]
}
end
end