diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountAggregate.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java similarity index 78% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountAggregate.java rename to bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java index fad1abd..345bdcd 100644 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountAggregate.java +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountAggregate.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.domain; +package com.mz.reactor.ddd.reactorddd.account.domain; import com.mz.reactor.ddd.common.api.valueobject.Id; import com.mz.reactor.ddd.common.api.valueobject.Money; diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountState.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java similarity index 83% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountState.java rename to bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java index d122966..8e6a13a 100644 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/AccountState.java +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/AccountState.java @@ -1,4 +1,4 @@ -package com.mz.reactor.ddd.reactorddd.domain; +package com.mz.reactor.ddd.reactorddd.account.domain; import org.immutables.value.Value; diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java new file mode 100644 index 0000000..d0f26a0 --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommand.java @@ -0,0 +1,9 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.command; + +import com.mz.reactor.ddd.common.api.command.Command; + +public interface AccountCommand extends Command { + + String aggregateId(); + +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandler.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandler.java new file mode 100644 index 0000000..a32fb79 --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/AccountCommandHandler.java @@ -0,0 +1,44 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.command; + +import com.mz.reactor.ddd.common.api.command.CommandHandler; +import com.mz.reactor.ddd.common.api.command.CommandResult; +import com.mz.reactor.ddd.reactorddd.account.domain.AccountAggregate; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiFunction; + +public class AccountCommandHandler implements CommandHandler { + + private final Map handlers = new HashMap<>(); + + public AccountCommandHandler() { + addHandler(CreateAccount.class, this::doCreateAccount); + addHandler(WithdrawMoney.class, this::doWithdrawMoney); + addHandler(DepositMoney.class, this::doDepositMoney); + } + + private void addHandler( + Class kClass, + BiFunction handler + ) { + this.handlers.put(kClass, handler); + } + + private CommandResult doWithdrawMoney(AccountAggregate aggregate, WithdrawMoney command) { + return null; + } + + private CommandResult doCreateAccount(AccountAggregate aggregate, CreateAccount command) { + return null; + } + + private CommandResult doDepositMoney(AccountAggregate aggregate, DepositMoney command) { + return null; + } + + @Override + public CommandResult execute(AccountAggregate aggregate, AccountCommand command) { + return (CommandResult) handlers.get(command.getClass()).apply(aggregate, command); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java new file mode 100644 index 0000000..e6c8b5d --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/CreateAccount.java @@ -0,0 +1,15 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.command; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface CreateAccount extends AccountCommand { + + BigDecimal balance(); + + static ImmutableCreateAccount.Builder builder() { + return ImmutableCreateAccount.builder(); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java new file mode 100644 index 0000000..9a5a210 --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/DepositMoney.java @@ -0,0 +1,14 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.command; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface DepositMoney extends AccountCommand { + BigDecimal amount(); + + static ImmutableDepositMoney.Builder builder() { + return ImmutableDepositMoney.builder(); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java new file mode 100644 index 0000000..6c6b72f --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/command/WithdrawMoney.java @@ -0,0 +1,15 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.command; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface WithdrawMoney extends AccountCommand { + + BigDecimal amount(); + + static ImmutableWithdrawMoney.Builder builder() { + return ImmutableWithdrawMoney.builder(); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountCreated.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java similarity index 65% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountCreated.java rename to bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java index bd5b675..12b2ef1 100644 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountCreated.java +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountCreated.java @@ -1,10 +1,13 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; +package com.mz.reactor.ddd.reactorddd.account.domain.event; import org.immutables.value.Value; +import java.math.BigDecimal; + @Value.Immutable public interface AccountCreated extends AccountEvent { + BigDecimal balance(); static ImmutableAccountCreated.Builder builder() { return ImmutableAccountCreated.builder(); diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEvent.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java similarity index 61% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEvent.java rename to bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java index 3c27bec..4f155eb 100644 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEvent.java +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEvent.java @@ -1,7 +1,6 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; +package com.mz.reactor.ddd.reactorddd.account.domain.event; import com.mz.reactor.ddd.common.api.event.DomainEvent; -import org.immutables.value.Value; public interface AccountEvent extends DomainEvent { diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEventApplier.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventApplier.java similarity index 90% rename from bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEventApplier.java rename to bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventApplier.java index 1f37f1f..b71fe22 100644 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/AccountEventApplier.java +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/AccountEventApplier.java @@ -1,7 +1,7 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; +package com.mz.reactor.ddd.reactorddd.account.domain.event; import com.mz.reactor.ddd.common.api.event.EventApplier; -import com.mz.reactor.ddd.reactorddd.domain.AccountAggregate; +import com.mz.reactor.ddd.reactorddd.account.domain.AccountAggregate; import java.util.HashMap; import java.util.Map; diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java new file mode 100644 index 0000000..62a525c --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/DepositMoneyFailed.java @@ -0,0 +1,16 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface DepositMoneyFailed extends AccountEvent { + + BigDecimal amount(); + + static ImmutableDepositMoneyFailed.Builder builder() { + return ImmutableDepositMoneyFailed.builder(); + } + +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java new file mode 100644 index 0000000..22ae486 --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyDeposited.java @@ -0,0 +1,14 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface MoneyDeposited extends AccountEvent { + BigDecimal amount(); + + static ImmutableMoneyDeposited.Builder builder() { + return ImmutableMoneyDeposited.builder(); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java new file mode 100644 index 0000000..9f960ca --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/MoneyWithdrawn.java @@ -0,0 +1,14 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface MoneyWithdrawn extends AccountEvent { + BigDecimal amount(); + + static ImmutableMoneyWithdrawn.Builder builder() { + return ImmutableMoneyWithdrawn.builder(); + } +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java new file mode 100644 index 0000000..a2bcd6a --- /dev/null +++ b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/account/domain/event/WithdrawMoneyFailed.java @@ -0,0 +1,16 @@ +package com.mz.reactor.ddd.reactorddd.account.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface WithdrawMoneyFailed extends AccountEvent { + + BigDecimal amount(); + + static ImmutableWithdrawMoneyFailed.Builder builder() { + return ImmutableWithdrawMoneyFailed.builder(); + } + +} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/DepositMoneyFailed.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/DepositMoneyFailed.java deleted file mode 100644 index f0ed7c7..0000000 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/DepositMoneyFailed.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; - -public interface DepositMoneyFailed extends AccountEvent { -} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyDeposited.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyDeposited.java deleted file mode 100644 index 6ab0721..0000000 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyDeposited.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; - -public interface MoneyDeposited extends AccountEvent { -} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyWithdrawn.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyWithdrawn.java deleted file mode 100644 index 971a8e3..0000000 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/MoneyWithdrawn.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; - -public interface MoneyWithdrawn extends AccountEvent { -} diff --git a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/WithdrawMoneyFailed.java b/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/WithdrawMoneyFailed.java deleted file mode 100644 index 231d1af..0000000 --- a/bank-account/account-domain/src/main/java/com/mz/reactor/ddd/reactorddd/domain/event/WithdrawMoneyFailed.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.mz.reactor.ddd.reactorddd.domain.event; - -public interface WithdrawMoneyFailed extends AccountEvent { -} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionAggregate.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionAggregate.java new file mode 100644 index 0000000..5ef587a --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionAggregate.java @@ -0,0 +1,26 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain; + +import com.mz.reactor.ddd.common.api.valueobject.Id; + +import java.math.BigDecimal; + +public class TransactionAggregate { + + enum TransactionState { + Created, + Finished, + Failed + } + + private Id aggregateId; + + private Id fromAccount; + + private Id toAccount; + + private BigDecimal amount; + + public TransactionAggregate(String aggregateId) { + this.aggregateId = new Id(aggregateId); + } +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionState.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionState.java new file mode 100644 index 0000000..9f81b57 --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/TransactionState.java @@ -0,0 +1,22 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface TransactionState { + + String aggregateId(); + + String fromAccountId(); + + String toAccountId(); + + BigDecimal amount(); + + static ImmutableTransactionState.Builder builder() { + return ImmutableTransactionState.builder(); + } + +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/CreateTransaction.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/CreateTransaction.java new file mode 100644 index 0000000..baeae2c --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/CreateTransaction.java @@ -0,0 +1,20 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.command; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface CreateTransaction extends TransactionCommand { + String aggregateId(); + + String fromAccountId(); + + String toAccountId(); + + BigDecimal amount(); + + static ImmutableCreateTransaction.Builder builder() { + return ImmutableCreateTransaction.builder(); + } +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommand.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommand.java new file mode 100644 index 0000000..d3398f7 --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommand.java @@ -0,0 +1,6 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.command; + +import com.mz.reactor.ddd.common.api.command.Command; + +public interface TransactionCommand extends Command { +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommandHandler.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommandHandler.java new file mode 100644 index 0000000..3043822 --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/command/TransactionCommandHandler.java @@ -0,0 +1,34 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.command; + +import com.mz.reactor.ddd.common.api.command.CommandHandler; +import com.mz.reactor.ddd.common.api.command.CommandResult; +import com.mz.reactor.ddd.reactorddd.transaction.domain.TransactionAggregate; + +import java.util.HashMap; +import java.util.Map; +import java.util.function.BiFunction; + +public class TransactionCommandHandler implements CommandHandler { + + private final Map handlers = new HashMap<>(); + + public TransactionCommandHandler() { + addHandler(CreateTransaction.class, this::doCreateTransaction); + } + + private void addHandler( + Class kClass, + BiFunction handler + ) { + handlers.put(kClass, handler); + } + + private CommandResult doCreateTransaction(TransactionAggregate aggregate, CreateTransaction command) { + return (CommandResult) handlers.get(command).apply(aggregate, command); + } + + @Override + public CommandResult execute(TransactionAggregate aggregate, TransactionCommand command) { + return null; + } +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionCreated.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionCreated.java new file mode 100644 index 0000000..02a3cbb --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionCreated.java @@ -0,0 +1,19 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface TransactionCreated extends TransactionEvent { + + String fromAccountId(); + + String toAccountId(); + + BigDecimal amount(); + + static ImmutableTransactionCreated.Builder builder() { + return ImmutableTransactionCreated.builder(); + } +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionEvent.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionEvent.java new file mode 100644 index 0000000..8ce0ef0 --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionEvent.java @@ -0,0 +1,9 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.event; + +import com.mz.reactor.ddd.common.api.event.DomainEvent; + +public interface TransactionEvent extends DomainEvent { + + String aggregateId(); + +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFailed.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFailed.java new file mode 100644 index 0000000..ce938b5 --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFailed.java @@ -0,0 +1,20 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.event; + +import org.immutables.value.Value; + +import java.math.BigDecimal; + +@Value.Immutable +public interface TransactionFailed extends TransactionEvent { + + String fromAccountId(); + + String toAccountId(); + + BigDecimal amount(); + + static ImmutableTransactionFailed.Builder builder() { + return ImmutableTransactionFailed.builder(); + } + +} diff --git a/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFinished.java b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFinished.java new file mode 100644 index 0000000..a5022fa --- /dev/null +++ b/bank-account/transaction-domain/src/main/java/com/mz/reactor/ddd/reactorddd/transaction/domain/event/TransactionFinished.java @@ -0,0 +1,11 @@ +package com.mz.reactor.ddd.reactorddd.transaction.domain.event; + +import org.immutables.value.Value; + +@Value.Immutable +public interface TransactionFinished extends TransactionEvent { + + static ImmutableTransactionFinished.Builder builder() { + return ImmutableTransactionFinished.builder(); + } +} diff --git a/build.gradle b/build.gradle index 4b3a908..4bd1df8 100644 --- a/build.gradle +++ b/build.gradle @@ -68,6 +68,7 @@ project(':bank-account:bank-account-application') { dependencies { implementation 'org.springframework.boot:spring-boot-starter-webflux' implementation project(':bank-account:account-domain') + implementation project(':bank-account:transaction-domain') testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'io.projectreactor:reactor-test' } @@ -79,7 +80,11 @@ project(':bank-account:account-domain') { } } -project(':bank-account:transaction-domain') {} +project(':bank-account:transaction-domain') { + dependencies { + api project(':common-api') + } +} project(':shared-dependencies') { dependencies { diff --git a/common-api/src/main/java/com/mz/reactor/ddd/common/api/command/Command.java b/common-api/src/main/java/com/mz/reactor/ddd/common/api/command/Command.java index 613fc0c..0502dfa 100644 --- a/common-api/src/main/java/com/mz/reactor/ddd/common/api/command/Command.java +++ b/common-api/src/main/java/com/mz/reactor/ddd/common/api/command/Command.java @@ -5,7 +5,6 @@ import org.immutables.value.Value; import java.time.Instant; import java.util.Optional; -@Value.Immutable public interface Command { Optional correlationId(); diff --git a/intellij-settings-export/live-templates.zip b/intellij-settings-export/live-templates.zip new file mode 100644 index 0000000..ea2d55c Binary files /dev/null and b/intellij-settings-export/live-templates.zip differ