1ad8d178f25e0b6adc8360f878d190e0d23620c0
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / persistence / storage / mongodb / ChatRoomTo.java
1 package de.juplo.kafka.chat.backend.persistence.storage.mongodb;
2
3 import de.juplo.kafka.chat.backend.domain.ChatRoom;
4 import lombok.*;
5 import org.springframework.data.annotation.Id;
6 import org.springframework.data.mongodb.core.mapping.Document;
7
8 import java.util.List;
9
10
11 @AllArgsConstructor
12 @NoArgsConstructor
13 @Getter(AccessLevel.PACKAGE)
14 @Setter(AccessLevel.PACKAGE)
15 @EqualsAndHashCode(of = { "id" })
16 @ToString(of = { "id", "name" })
17 @Document
18 public class ChatRoomTo
19 {
20   @Id
21   private String id;
22   private String name;
23   private List<MessageTo> messages;
24
25   public static ChatRoomTo from(ChatRoom chatroom)
26   {
27     return new ChatRoomTo(
28         chatroom.getId().toString(),
29         chatroom.getName(),
30         chatroom
31             .getMessages()
32             .map(MessageTo::from)
33             .collectList()
34             .block());
35   }
36 }