Packages

Seven Otters is a set of facilities (macroes, functions, modules, etc.) developed to create CQRS/ES solutions in Elixir on BEAM virtual machine.

Current section

Files

Jump to
seven lib seven otters event.ex
Raw

lib/seven/otters/event.ex

defmodule Seven.Otters.Event do
@moduledoc false
@type t :: %__MODULE__{}
defstruct id: nil,
type: nil,
counter: nil,
request_id: nil,
correlation_id: nil,
correlation_module: nil,
date: nil,
payload: %{}
@spec create(String.t(), Map.t(), atom) :: Map.t()
def create(type, payload, correlation_module) do
struct(
%__MODULE__{},
id: Seven.Data.Persistence.new_id(),
date: NaiveDateTime.utc_now() |> NaiveDateTime.to_iso8601(),
type: type,
correlation_module: correlation_module,
payload: payload
)
end
end