View Source OnePiece.Commanded.Event (OnePiece.Commanded v0.19.0)
Defines "Event" modules.
Link to this section Summary
Link to this section Types
@type aggregate_identifier_opt() :: atom() | {key_name :: atom(), type :: atom()} | {key_name :: atom(), type :: module()}
The aggregate identifier key of the event.
If it's a tuple, the type must be a module that implements the OnePiece.Commanded.ValueObject
module or Ecto
built-in types
@type t() :: struct()
A struct that represents an event.
Link to this section Functions
@spec __using__(opts :: [{:aggregate_identifier, aggregate_identifier_opt()}]) :: any()
Converts the module into an t/0
.
using
Using
usage
Usage
defmodule MyEvent do
use OnePiece.Commanded.Event, aggregate_identifier: :id
embedded_schema do
# ...
end
end
You can also define a custom type as the aggregate identifier:
defmodule IdentityRoleId do
use OnePiece.Commanded.ValueObject
embedded_schema do
field :identity_id, :string
field :role_id, :string
end
end
defmodule IdentityRoleAssigned do
use OnePiece.Commanded.Event,
aggregate_identifier: {:id, IdentityRoleId}
embedded_schema do
# ...
end
end