TransferController sends a message, instead of calling TransferService
[demos/kafka/demos-kafka-payment-system-transfer] / src / main / java / de / juplo / kafka / payment / transfer / domain / Transfer.java
1 package de.juplo.kafka.payment.transfer.domain;
2
3
4 import lombok.Builder;
5 import lombok.Data;
6 import lombok.EqualsAndHashCode;
7
8 import java.util.LinkedList;
9 import java.util.List;
10
11
12 @Data
13 @Builder
14 @EqualsAndHashCode(exclude = { "state", "messages" })
15 public class Transfer
16 {
17   public enum State
18   {
19     RECEIVED(false),
20     CREATED(false),
21     INVALID(false),
22     CHECKED(false),
23     APPROVED(true),
24     REJECTED(true);
25
26     public final boolean foreign;
27
28     State(boolean foreign)
29     {
30       this.foreign = foreign;
31     }
32   }
33
34   private final long id;
35   private final long payer;
36   private final long payee;
37   private final int amount;
38
39   private State state;
40
41   private final List<String> messages = new LinkedList<>();
42
43
44   public Transfer setState(State state)
45   {
46     this.state = state;
47     return this;
48   }
49
50   public Transfer addMessage(String message)
51   {
52     messages.add(message);
53     return this;
54   }
55 }