Cqrs.DomainEvent (cqrs_tools v0.5.28) View Source
Defines a new domain event struct
Options
:from
optional - a struct to derive fields from.:with
optional - a list ofatom
field names to add.:drop
optional - a list ofatom
field names to remove from any field derived from the struct in the:from
option.:version
optional - a version value. Defaults to1
Example
defmodule DeleteUser do
use Cqrs.Command
field :id, :integer
def handle_dispatch(command, _opts) do
{:ok, :no_impl}
end
end
defmodule UserDeleted do
use Cqrs.DomainEvent,
from: DeleteUser,
with: [:from],
version: 2
end
iex> cmd = DeleteUser.new!(id: 668)
...> event = UserDeleted.new(cmd, from: "chris")
...> %{id: event.id, from: event.from, version: event.version}
%{id: 668, from: "chris", version: 2}