Skip to content

Commit 52cc72a

Browse files
committed
refactor: edit Dto & Service
1 parent e8a08db commit 52cc72a

File tree

2 files changed

+29
-11
lines changed

2 files changed

+29
-11
lines changed

src/main/java/com/back/domain/chatbot/dto/ChatResponseDto.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.back.domain.chatbot.dto;
22

3+
import com.back.domain.chatbot.enums.MessageSender;
34
import com.back.domain.chatbot.enums.MessageType;
45
import lombok.AllArgsConstructor;
56
import lombok.Builder;
@@ -16,9 +17,12 @@
1617
@Builder
1718
public class ChatResponseDto {
1819

20+
private Long id; // 메시지 ID (DB 저장 후 생성)
21+
private Long userId; // 사용자 ID
1922
private String message; // 텍스트 메시지
23+
private MessageSender sender; // 메시지 발신자 (USER / CHATBOT)
2024
private MessageType type; // 메시지 표시 타입
21-
private LocalDateTime timestamp;
25+
private LocalDateTime createdAt; // 생성 시간 (timestamp → createdAt으로 변경)
2226

2327
// 단계별 추천 관련 데이터 (type이 RADIO_OPTIONS 또는 CARD_LIST일 때 사용)
2428
private StepRecommendationResponseDto stepData;
@@ -30,12 +34,14 @@ public class ChatResponseDto {
3034
public ChatResponseDto(String message) {
3135
this.message = message;
3236
this.type = MessageType.TEXT;
33-
this.timestamp = LocalDateTime.now();
37+
this.sender = MessageSender.CHATBOT;
38+
this.createdAt = LocalDateTime.now();
3439
}
3540

3641
public ChatResponseDto(String message, StepRecommendationResponseDto stepData) {
3742
this.message = message;
38-
this.timestamp = LocalDateTime.now();
43+
this.sender = MessageSender.CHATBOT;
44+
this.createdAt = LocalDateTime.now();
3945
this.stepData = stepData;
4046

4147
// stepData 내용에 따라 type 자동 설정

src/main/java/com/back/domain/chatbot/service/ChatbotService.java

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,11 @@ else if (currentStep >= 1 && currentStep <= 4) {
129129
String response = generateAIResponse(requestDto);
130130

131131
return ChatResponseDto.builder()
132+
.userId(requestDto.getUserId())
132133
.message(response)
134+
.sender(MessageSender.CHATBOT)
133135
.type(MessageType.TEXT)
134-
.timestamp(LocalDateTime.now())
136+
.createdAt(LocalDateTime.now())
135137
.build();
136138

137139
} catch (Exception e) {
@@ -254,6 +256,7 @@ public ChatResponseDto createGreetingMessage(Long userId) {
254256
// 중복 확인: 동일한 인사말이 이미 존재하는지 확인
255257
boolean greetingExists = chatConversationRepository.existsByUserIdAndMessage(userId, greetingMessage);
256258

259+
ChatConversation savedGreeting = null;
257260
// 중복되지 않을 경우에만 DB에 저장
258261
if (!greetingExists) {
259262
ChatConversation greeting = ChatConversation.builder()
@@ -262,18 +265,21 @@ public ChatResponseDto createGreetingMessage(Long userId) {
262265
.sender(MessageSender.CHATBOT)
263266
.createdAt(LocalDateTime.now())
264267
.build();
265-
chatConversationRepository.save(greeting);
268+
savedGreeting = chatConversationRepository.save(greeting);
266269
log.info("인사말 저장 완료 - userId: {}", userId);
267270
} else {
268271
log.info("이미 인사말이 존재하여 저장 생략 - userId: {}", userId);
269272
}
270273

271-
// ChatResponseDto 반환
274+
// ChatResponseDto 반환 (요청된 형식에 맞춰 id, userId, sender, type, createdAt 포함)
272275
return ChatResponseDto.builder()
276+
.id(savedGreeting != null ? savedGreeting.getId() : null)
277+
.userId(userId)
273278
.message(greetingMessage)
279+
.sender(MessageSender.CHATBOT)
274280
.type(MessageType.RADIO_OPTIONS)
275281
.stepData(stepData)
276-
.timestamp(LocalDateTime.now())
282+
.createdAt(LocalDateTime.now())
277283
.build();
278284
}
279285

@@ -390,8 +396,9 @@ private String generateAIResponse(ChatRequestDto requestDto) {
390396
public ChatResponseDto createLoadingMessage() {
391397
return ChatResponseDto.builder()
392398
.message("응답을 생성하는 중...")
399+
.sender(MessageSender.CHATBOT)
393400
.type(MessageType.LOADING)
394-
.timestamp(LocalDateTime.now())
401+
.createdAt(LocalDateTime.now())
395402
.metaData(ChatResponseDto.MetaData.builder()
396403
.isTyping(true)
397404
.build())
@@ -438,9 +445,11 @@ private ChatResponseDto generateAIResponseWithContext(ChatRequestDto requestDto,
438445
String response = generateAIResponse(requestDto);
439446

440447
return ChatResponseDto.builder()
448+
.userId(requestDto.getUserId())
441449
.message(response)
450+
.sender(MessageSender.CHATBOT)
442451
.type(MessageType.TEXT)
443-
.timestamp(LocalDateTime.now())
452+
.createdAt(LocalDateTime.now())
444453
.metaData(ChatResponseDto.MetaData.builder()
445454
.actionType(mode)
446455
.currentStep(0)
@@ -455,8 +464,9 @@ private ChatResponseDto generateAIResponseWithContext(ChatRequestDto requestDto,
455464
private ChatResponseDto createErrorResponse(String errorMessage) {
456465
return ChatResponseDto.builder()
457466
.message(errorMessage)
467+
.sender(MessageSender.CHATBOT)
458468
.type(MessageType.ERROR)
459-
.timestamp(LocalDateTime.now())
469+
.createdAt(LocalDateTime.now())
460470
.build();
461471
}
462472

@@ -517,11 +527,13 @@ private ChatResponseDto handleStepRecommendation(ChatRequestDto requestDto) {
517527
.build();
518528

519529
return ChatResponseDto.builder()
530+
.userId(requestDto.getUserId())
520531
.message(message)
532+
.sender(MessageSender.CHATBOT)
521533
.type(type)
522534
.stepData(stepData)
523535
.metaData(metaData)
524-
.timestamp(LocalDateTime.now())
536+
.createdAt(LocalDateTime.now())
525537
.build();
526538
}
527539

0 commit comments

Comments
 (0)