Current section
Files
Jump to
Current section
Files
lib/cfdi/xml/cfdi_factory.ex
defmodule Cfdi.Xml.CfdiFactory do
@moduledoc """
Factory que construye un `Cfdi.Xml.Concepto` a partir de los
datos crudos del XML. Espejo de `CFDIFactory` 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