lib/fretex.ex
defmodule Fretex do
require Logger
alias Fretex.Carriers
@spec calculate(Package.t()) :: [{:ok, Rate.t()} | {:error, binary()}]
def calculate(package) do
Enum.flat_map(package.carriers, fn carrier ->
Logger.info("Calculating freigth for #{carrier.__struct__} with #{inspect(package, pretty: true)}")
Carriers.calculate(carrier, package)
end)
end
@spec list_services(Fretex.Carriers.t()) :: [CarrierService.t()]
def list_services(carrier) do
Carriers.list_services(carrier)
end
end