package de.juplo.kafka.chat.backend.domain;
-import lombok.RequiredArgsConstructor;
+import reactor.core.publisher.Flux;
+import reactor.core.publisher.Mono;
-import java.util.*;
-import java.util.stream.Stream;
+import java.util.UUID;
-@RequiredArgsConstructor
-public class ChatHome
+public interface ChatHome
{
- private final Map<UUID, Chatroom> chatrooms;
- private final ChatroomFactory factory;
+ Mono<ChatRoom> getChatRoom(UUID id);
-
- public Chatroom createChatroom(String name)
- {
- Chatroom chatroom = factory.createChatroom(UUID.randomUUID(), name);
- chatrooms.put(chatroom.getId(), chatroom);
- return chatroom;
- }
-
- public Optional<Chatroom> getChatroom(UUID id)
- {
- return Optional.ofNullable(chatrooms.get(id));
- }
-
- public Stream<Chatroom> list()
- {
- return chatrooms.values().stream();
- }
+ Flux<ChatRoom> getChatRooms();
}