View Source Changelog

Unreleased

v0.19.1 - 2023-10-04

v0.19.0 - 2023-06-15

OnePiece.Commanded.ValueObject implements Ecto.Type, it means that cast/2, dump/2, and load/2 are added to every module that uses OnePiece.Commanded.ValueObject. This will allow you to use OnePiece.Commanded.ValueObject as a field in your Ecto.Schema and as custom type in your OnePiece.Commanded.Aggregate, OnePiece.Commanded.Command, and OnePiece.Commanded.Event.

Added support for custom types for OnePiece.Commanded.Aggregate, OnePiece.Commanded.Command, and OnePiece.Commanded.Event. This will allow you to have Custom aggregate identity. Read more about at https://hexdocs.pm/commanded/commands.html#define-aggregate-identity under "Custom aggregate identity".

defmodule AccountNumber do
  use OnePiece.Commanded.ValueObject
  
  embedded_schema do
    field :account_number, :string
    field :branch, :string
  end
  
  # You must implement `String.Chars` protocol in order to work when dispatching the Command. 
  defimpl String.Chars do
    def to_string(%AccountNumber{branch: branch, account_number: account_number}) do
      branch <> ":" <> account_number
    end
  end
end

defmodule DepositAccount do
  use OnePiece.Commanded.Aggregate,
    identifier: {:account_number, AccountNumber}

  embedded_schema do
    # ...
  end
end

defmodule DepositAccountOpened do
  use OnePiece.Commanded.Event,
    aggregate_identifier: {:account_number, AccountNumber} 

  embedded_schema do
    # ...
  end
end

defmodule OpenDepositAccount do
  use OnePiece.Commanded.Command,
    aggregate_identifier: {:account_number, AccountNumber} 

  embedded_schema do
    # ...
  end
end

v0.18.0 - 2023-05-15

v0.17.0 - 2023-04-28

v0.16.0 - 2023-04-11

v0.15.2 - 2023-03-14

v0.15.1 - 2022-12-24

v0.15.0 - 2022-12-23

  • Added overridable to OnePiece.Commanded.ValueObject.new/1
  • Added overridable to OnePiece.Commanded.ValueObject.new!/1
  • Added overridable to OnePiece.Commanded.ValueObject.changeset/2

v0.14.0 - 2022-09-4

v0.13.0 - 2022-08-19

v0.12.0 - 2022-08-19

v0.11.1 - 2022-07-21

v0.11.0 - 2022-07-1

v0.10.1 - 2022-06-28

v0.10.0 - 2022-06-23

v0.9.1 - 2022-06-22

  • Move test support under lib directory.

v0.7.0 - 2022-02-14

v0.6.0 - 2022-02-14

v0.5.0 - 2022-02-14

v0.4.0 - 2021-11-25

  • Improve documentation

v0.4.0 - 2021-08-15

v0.3.0 - 2021-08-15

  • Fix docs
  • Fix version bump

v0.2.1 - 2021-08-15

  • Add test support files

v0.2.0 - 2021-08-08

  • Fix putting aggregate id to command function name

v0.1.3 - 2021-08-08

  • Fix aliases

v0.1.2 - 2021-08-08

  • Fix __using__ for aggregate, command handler, query handler, and value object

v0.1.1 - 2021-08-08

  • Remove dead-code

v0.1.0 - 2021-08-08

  • Initial release