Skip to content

Commit b16c1ca

Browse files
committed
feat: 채팅 메시지 목록 가져오는 Service 메소드 구현
Related to: #136
1 parent eef02c8 commit b16c1ca

13 files changed

+152
-10
lines changed

src/main/java/com/hf/healthfriend/domain/chat/constant/ChatDefaultValues.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@
22

33
public class ChatDefaultValues {
44
public static final int DEFAULT_PAGE = 1;
5-
public static final int DEFAULT_PAGE_SIZE = 10;
5+
public static final int DEFAULT_CHATROOM_PAGE_SIZE = 10;
6+
public static final int DEFAULT_CHAT_MESSAGE_FETCH_SIZE = 50;
67
}
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package com.hf.healthfriend.domain.chat.dto.response;
2+
3+
import lombok.Builder;
4+
5+
import java.util.List;
6+
7+
@Builder
8+
public record ChatMessageListResponseDto(
9+
List<ChatMessageResponseDto> chatMessages,
10+
boolean isFirst,
11+
boolean isLast,
12+
int page,
13+
int pageSize
14+
) {
15+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.hf.healthfriend.domain.chat.dto.response;
2+
3+
import com.hf.healthfriend.domain.chat.constant.ChatMessageType;
4+
import lombok.Builder;
5+
6+
import java.time.LocalDateTime;
7+
8+
@Builder
9+
public record ChatMessageResponseDto(
10+
Long chatMessageId,
11+
Long senderId,
12+
LocalDateTime creationTime,
13+
LocalDateTime lastModified,
14+
ChatMessageType chatMessageType,
15+
Object content,
16+
boolean read
17+
) {
18+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.hf.healthfriend.domain.chat.dto.response.messagecontent;
2+
3+
public record ImageChatMessageResponseContent(
4+
String imageUrl
5+
) {
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package com.hf.healthfriend.domain.chat.dto.response.messagecontent;
2+
3+
import java.time.LocalDateTime;
4+
5+
public record MatchingRequestChatMessageResponseContent(
6+
LocalDateTime meetingTime,
7+
String meetingPlace,
8+
String meetingPlaceAddress
9+
) {
10+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.hf.healthfriend.domain.chat.dto.response.messagecontent;
2+
3+
import com.hf.healthfriend.domain.chat.constant.MatchingResponseType;
4+
5+
public record MatchingResponseChatMessageResponseContent(
6+
MatchingResponseType matchingResponseType,
7+
String cancelMessage
8+
) {
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.hf.healthfriend.domain.chat.dto.response.messagecontent;
2+
3+
public record TextChatMessageResponseContent(
4+
String text
5+
) {
6+
}

src/main/java/com/hf/healthfriend/domain/chat/entity/chatmessage/ChatMessage.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.hf.healthfriend.domain.chat.entity.chatmessage;
22

33
import com.hf.healthfriend.domain.BaseTimeEntity;
4+
import com.hf.healthfriend.domain.chat.constant.ChatMessageType;
45
import com.hf.healthfriend.domain.chat.entity.Chatroom;
56
import com.hf.healthfriend.domain.member.entity.Member;
67
import jakarta.persistence.*;
@@ -64,4 +65,6 @@ public void readIfOpponent(Member reader) {
6465
}
6566

6667
public abstract String getMessageAsText();
68+
69+
public abstract ChatMessageType getChatMessageType();
6770
}

src/main/java/com/hf/healthfriend/domain/chat/entity/chatmessage/ImageChatMessage.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.hf.healthfriend.domain.chat.entity.chatmessage;
22

3+
import com.hf.healthfriend.domain.chat.constant.ChatMessageType;
34
import com.hf.healthfriend.domain.chat.entity.ChatParticipation;
45
import com.hf.healthfriend.domain.chat.entity.Chatroom;
56
import com.hf.healthfriend.domain.member.entity.Member;
@@ -29,4 +30,9 @@ public ImageChatMessage(Chatroom chatroom, Member sender, String imageUrl) {
2930
public String getMessageAsText() {
3031
return "이미지";
3132
}
33+
34+
@Override
35+
public ChatMessageType getChatMessageType() {
36+
return ChatMessageType.IMAGE;
37+
}
3238
}

src/main/java/com/hf/healthfriend/domain/chat/entity/chatmessage/MatchingRequestChatMessage.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,20 @@
11
package com.hf.healthfriend.domain.chat.entity.chatmessage;
22

3+
import com.hf.healthfriend.domain.chat.constant.ChatMessageType;
34
import com.hf.healthfriend.domain.chat.entity.Chatroom;
45
import com.hf.healthfriend.domain.member.entity.Member;
56
import jakarta.persistence.DiscriminatorValue;
67
import jakarta.persistence.Entity;
78
import lombok.AccessLevel;
9+
import lombok.Getter;
810
import lombok.NoArgsConstructor;
911

1012
import java.time.LocalDateTime;
1113

1214
@Entity
1315
@DiscriminatorValue("MAT_REQ")
1416
@NoArgsConstructor(access = AccessLevel.PROTECTED)
17+
@Getter
1518
public class MatchingRequestChatMessage extends ChatMessage {
1619
private LocalDateTime meetingTime;
1720
private String meetingPlace;
@@ -36,4 +39,9 @@ public MatchingRequestChatMessage(Chatroom chatroom,
3639
public String getMessageAsText() {
3740
return "매칭 신청이 도착했습니다";
3841
}
42+
43+
@Override
44+
public ChatMessageType getChatMessageType() {
45+
return ChatMessageType.MATCHING_REQUEST;
46+
}
3947
}

0 commit comments

Comments
 (0)