diff --git a/src/main/java/io/autoinvestor/domain/events/DecisionTakenEvent.java b/src/main/java/io/autoinvestor/domain/events/DecisionTakenEvent.java index 6379877..e84e2a3 100644 --- a/src/main/java/io/autoinvestor/domain/events/DecisionTakenEvent.java +++ b/src/main/java/io/autoinvestor/domain/events/DecisionTakenEvent.java @@ -10,8 +10,8 @@ public class DecisionTakenEvent extends Event { public static final String TYPE = "ASSET_DECISION_TAKEN"; - private DecisionTakenEvent(Id aggregateId, DecisionTakenEventPayload payload) { - super(aggregateId, TYPE, payload); + private DecisionTakenEvent(Id aggregateId, DecisionTakenEventPayload payload, int version) { + super(aggregateId, TYPE, payload, version); } protected DecisionTakenEvent(EventId id, @@ -22,14 +22,15 @@ protected DecisionTakenEvent(EventId id, super(id, decisionId, TYPE, payload, occurredAt, version); } - public static DecisionTakenEvent with(DecisionId decisionId, AssetId assetId, Date date, Type type, RiskLevel riskLevel) { + public static DecisionTakenEvent with(DecisionId decisionId, AssetId assetId, Date date, Type type, + RiskLevel riskLevel, int version) { DecisionTakenEventPayload payload = new DecisionTakenEventPayload( assetId.value(), date, type.name(), riskLevel.value() ); - return new DecisionTakenEvent(decisionId, payload); + return new DecisionTakenEvent(decisionId, payload, version); } public static DecisionTakenEvent hydrate(EventId id, diff --git a/src/main/java/io/autoinvestor/domain/events/Event.java b/src/main/java/io/autoinvestor/domain/events/Event.java index 940207c..ea579ff 100644 --- a/src/main/java/io/autoinvestor/domain/events/Event.java +++ b/src/main/java/io/autoinvestor/domain/events/Event.java @@ -14,10 +14,6 @@ public abstract class Event

{ private final Date occurredAt; private final int version; - protected Event(Id aggregateId, String type, P payload) { - this(aggregateId, type, payload, 1); - } - protected Event(Id aggregateId, String type, P payload, int version) { this.id = EventId.generate(); this.aggregateId = aggregateId; diff --git a/src/main/java/io/autoinvestor/domain/events/EventSourcedEntity.java b/src/main/java/io/autoinvestor/domain/events/EventSourcedEntity.java index e9b67b0..abfef71 100644 --- a/src/main/java/io/autoinvestor/domain/events/EventSourcedEntity.java +++ b/src/main/java/io/autoinvestor/domain/events/EventSourcedEntity.java @@ -5,7 +5,7 @@ public abstract class EventSourcedEntity { private final List> appliedEvents = new ArrayList<>(); - private int version; + protected int version; protected EventSourcedEntity(List> stream) { if (!stream.isEmpty()) { @@ -18,10 +18,6 @@ protected EventSourcedEntity(List> stream) { } } - protected EventSourcedEntity() { - this(null); - } - protected void apply(Event e) { appliedEvents.add(e); when(e); diff --git a/src/main/java/io/autoinvestor/domain/model/Decision.java b/src/main/java/io/autoinvestor/domain/model/Decision.java index 6ffa1b6..d3b9f76 100644 --- a/src/main/java/io/autoinvestor/domain/model/Decision.java +++ b/src/main/java/io/autoinvestor/domain/model/Decision.java @@ -36,7 +36,8 @@ public void takeDecision(String assetId, int feelingInt, RiskLevel riskLevel) { AssetId.of(assetId), new Date(), type, - riskLevel + riskLevel, + this.version )); }