Introduced different Events for the creation and the state-changes
[demos/kafka/demos-kafka-payment-system-transfer] / src / main / java / de / juplo / kafka / payment / transfer / adapter / NewTransferEvent.java
diff --git a/src/main/java/de/juplo/kafka/payment/transfer/adapter/NewTransferEvent.java b/src/main/java/de/juplo/kafka/payment/transfer/adapter/NewTransferEvent.java
new file mode 100644 (file)
index 0000000..0c5e271
--- /dev/null
@@ -0,0 +1,42 @@
+package de.juplo.kafka.payment.transfer.adapter;
+
+import de.juplo.kafka.payment.transfer.domain.Transfer;
+import lombok.Builder;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+
+@Data
+@EqualsAndHashCode
+@Builder
+public class NewTransferEvent
+{
+  private Long id;
+  private Long payer;
+  private Long payee;
+  private Integer amount;
+
+  public Transfer toTransfer()
+  {
+    return
+        Transfer
+            .builder()
+            .id(id)
+            .payer(payer)
+            .payee(payee)
+            .amount(amount)
+            .build();
+  }
+
+  public static NewTransferEvent ofTransfer(Transfer transfer)
+  {
+    return
+        NewTransferEvent
+            .builder()
+            .id(transfer.getId())
+            .payer(transfer.getPayer())
+            .payee(transfer.getPayee())
+            .amount(transfer.getAmount())
+            .build();
+  }
+}