defmodule Customers.Identification do @derive Jason.Encoder @type t() :: %__MODULE__{ issuing_country: <<_::2>>, number: String.t(), type: String.t() } defstruct [ :issuing_country, :number, :type ] def build(params) when is_map(params) do %__MODULE__{ issuing_country: params[:issuing_country], number: params[:number], type: params[:type], } end def build(_), do: {:error, "identification invalid"} end