Current section
Files
Jump to
Current section
Files
lib/cfdi/xml/concepto_factory.ex
defmodule Cfdi.Xml.ConceptoFactory do
@moduledoc """
Factory para construir un `Cfdi.Xml.Concepto` desde un mapa de
atributos. Espejo de `ConceptFactory` del paquete TypeScript.
"""
alias Cfdi.Xml.Concepto
defstruct [:data]
@type t :: %__MODULE__{data: map()}
@spec new(map()) :: t()
def new(data) when is_map(data), do: %__MODULE__{data: data}
@spec build(t() | map()) :: Concepto.t()
def build(%__MODULE__{data: data}), do: Concepto.new(data)
def build(data) when is_map(data), do: Concepto.new(data)
end