diff --git a/src/main/java/org/example/petshopdesktop/api/dto/chat/ConversationResponse.java b/src/main/java/org/example/petshopdesktop/api/dto/chat/ConversationResponse.java index bac384d4..1bcdba17 100644 --- a/src/main/java/org/example/petshopdesktop/api/dto/chat/ConversationResponse.java +++ b/src/main/java/org/example/petshopdesktop/api/dto/chat/ConversationResponse.java @@ -7,7 +7,9 @@ public class ConversationResponse { private Long customerId; private Long staffId; private String status; + private String mode; private String lastMessage; + private LocalDateTime humanRequestedAt; private LocalDateTime createdAt; private LocalDateTime updatedAt; @@ -46,6 +48,14 @@ public class ConversationResponse { this.status = status; } + public String getMode() { + return mode; + } + + public void setMode(String mode) { + this.mode = mode; + } + public String getLastMessage() { return lastMessage; } @@ -54,6 +64,14 @@ public class ConversationResponse { this.lastMessage = lastMessage; } + public LocalDateTime getHumanRequestedAt() { + return humanRequestedAt; + } + + public void setHumanRequestedAt(LocalDateTime humanRequestedAt) { + this.humanRequestedAt = humanRequestedAt; + } + public LocalDateTime getCreatedAt() { return createdAt; } diff --git a/src/main/java/org/example/petshopdesktop/controllers/ChatController.java b/src/main/java/org/example/petshopdesktop/controllers/ChatController.java index bb70f857..6911960d 100644 --- a/src/main/java/org/example/petshopdesktop/controllers/ChatController.java +++ b/src/main/java/org/example/petshopdesktop/controllers/ChatController.java @@ -326,7 +326,16 @@ public class ChatController { } private String buildConversationMeta(ConversationResponse conversation) { - String assignee = conversation.getStaffId() == null ? "Unassigned" : "Assigned"; + String assignee; + if (conversation.getStaffId() != null) { + assignee = "Assigned"; + } else if (conversation.getHumanRequestedAt() != null) { + assignee = "Takeover requested"; + } else if ("AUTOMATED".equals(conversation.getMode())) { + assignee = "Automated"; + } else { + assignee = "Open"; + } String updated = conversation.getUpdatedAt() == null ? "" : TIME_FORMATTER.format(conversation.getUpdatedAt()); return assignee + (updated.isBlank() ? "" : " ยท " + updated); }