defmodule Blunt.Ddd do defmacro __using__(_opts) do quote do import Blunt.Ddd, only: :macros end end defmacro defstate(do: body) do quote do use Blunt.State unquote(body) end end defmacro defcontext(do: body) do quote do use Blunt.Context unquote(body) end end defmacro defevent(opts \\ [], do: body) do quote do use Blunt.DomainEvent, unquote(opts) unquote(body) end end defmacro defvalue(opts \\ [], do: body) do quote do use Blunt.ValueObject, unquote(opts) unquote(body) end end defmacro defentity(opts \\ [], do: body) do quote do use Blunt.Entity, unquote(opts) unquote(body) end end end