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()) :: {:ok, [CarrierService.t()]} | {:error, any()}
def list_services(carrier) do
Carriers.list_services(carrier)
end
end