add message attachment fields
This commit is contained in:
@@ -1,18 +1,15 @@
|
|||||||
package com.petshop.backend.dto.chat;
|
package com.petshop.backend.dto.chat;
|
||||||
|
|
||||||
import jakarta.validation.constraints.NotBlank;
|
|
||||||
|
|
||||||
public class MessageRequest {
|
public class MessageRequest {
|
||||||
@NotBlank(message = "Message content is required")
|
|
||||||
private String content;
|
private String content;
|
||||||
|
private String attachmentUrl;
|
||||||
|
private String attachmentName;
|
||||||
|
private String attachmentMimeType;
|
||||||
|
private Long attachmentSizeBytes;
|
||||||
|
|
||||||
public MessageRequest() {
|
public MessageRequest() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public MessageRequest(String content) {
|
|
||||||
this.content = content;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getContent() {
|
public String getContent() {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
@@ -20,4 +17,36 @@ public class MessageRequest {
|
|||||||
public void setContent(String content) {
|
public void setContent(String content) {
|
||||||
this.content = content;
|
this.content = content;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAttachmentUrl() {
|
||||||
|
return attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentUrl(String attachmentUrl) {
|
||||||
|
this.attachmentUrl = attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentName() {
|
||||||
|
return attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentName(String attachmentName) {
|
||||||
|
this.attachmentName = attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentMimeType() {
|
||||||
|
return attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentMimeType(String attachmentMimeType) {
|
||||||
|
this.attachmentMimeType = attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getAttachmentSizeBytes() {
|
||||||
|
return attachmentSizeBytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentSizeBytes(Long attachmentSizeBytes) {
|
||||||
|
this.attachmentSizeBytes = attachmentSizeBytes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,10 @@ public class MessageResponse {
|
|||||||
private String content;
|
private String content;
|
||||||
private LocalDateTime timestamp;
|
private LocalDateTime timestamp;
|
||||||
private Boolean isRead;
|
private Boolean isRead;
|
||||||
|
private String attachmentUrl;
|
||||||
|
private String attachmentName;
|
||||||
|
private String attachmentMimeType;
|
||||||
|
private Long attachmentSizeBytes;
|
||||||
|
|
||||||
public MessageResponse() {
|
public MessageResponse() {
|
||||||
}
|
}
|
||||||
@@ -32,6 +36,10 @@ public class MessageResponse {
|
|||||||
response.setContent(message.getContent());
|
response.setContent(message.getContent());
|
||||||
response.setTimestamp(message.getTimestamp());
|
response.setTimestamp(message.getTimestamp());
|
||||||
response.setIsRead(message.getIsRead());
|
response.setIsRead(message.getIsRead());
|
||||||
|
response.setAttachmentUrl(message.getAttachmentUrl());
|
||||||
|
response.setAttachmentName(message.getAttachmentName());
|
||||||
|
response.setAttachmentMimeType(message.getAttachmentMimeType());
|
||||||
|
response.setAttachmentSizeBytes(message.getAttachmentSizeBytes());
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -82,4 +90,36 @@ public class MessageResponse {
|
|||||||
public void setIsRead(Boolean isRead) {
|
public void setIsRead(Boolean isRead) {
|
||||||
this.isRead = isRead;
|
this.isRead = isRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAttachmentUrl() {
|
||||||
|
return attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentUrl(String attachmentUrl) {
|
||||||
|
this.attachmentUrl = attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentName() {
|
||||||
|
return attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentName(String attachmentName) {
|
||||||
|
this.attachmentName = attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentMimeType() {
|
||||||
|
return attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentMimeType(String attachmentMimeType) {
|
||||||
|
this.attachmentMimeType = attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getAttachmentSizeBytes() {
|
||||||
|
return attachmentSizeBytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentSizeBytes(Long attachmentSizeBytes) {
|
||||||
|
this.attachmentSizeBytes = attachmentSizeBytes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,9 +19,20 @@ public class Message {
|
|||||||
@Column(nullable = false)
|
@Column(nullable = false)
|
||||||
private Long senderId;
|
private Long senderId;
|
||||||
|
|
||||||
@Column(nullable = false, columnDefinition = "TEXT")
|
@Column(columnDefinition = "TEXT")
|
||||||
private String content;
|
private String content;
|
||||||
|
|
||||||
|
@Column(length = 255)
|
||||||
|
private String attachmentUrl;
|
||||||
|
|
||||||
|
@Column(length = 255)
|
||||||
|
private String attachmentName;
|
||||||
|
|
||||||
|
@Column(length = 100)
|
||||||
|
private String attachmentMimeType;
|
||||||
|
|
||||||
|
private Long attachmentSizeBytes;
|
||||||
|
|
||||||
@CreationTimestamp
|
@CreationTimestamp
|
||||||
@Column(nullable = false, updatable = false)
|
@Column(nullable = false, updatable = false)
|
||||||
private LocalDateTime timestamp;
|
private LocalDateTime timestamp;
|
||||||
@@ -88,4 +99,36 @@ public class Message {
|
|||||||
public void setIsRead(Boolean isRead) {
|
public void setIsRead(Boolean isRead) {
|
||||||
this.isRead = isRead;
|
this.isRead = isRead;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getAttachmentUrl() {
|
||||||
|
return attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentUrl(String attachmentUrl) {
|
||||||
|
this.attachmentUrl = attachmentUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentName() {
|
||||||
|
return attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentName(String attachmentName) {
|
||||||
|
this.attachmentName = attachmentName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getAttachmentMimeType() {
|
||||||
|
return attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentMimeType(String attachmentMimeType) {
|
||||||
|
this.attachmentMimeType = attachmentMimeType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Long getAttachmentSizeBytes() {
|
||||||
|
return attachmentSizeBytes;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAttachmentSizeBytes(Long attachmentSizeBytes) {
|
||||||
|
this.attachmentSizeBytes = attachmentSizeBytes;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,8 @@ public class ChatService {
|
|||||||
return conversations.stream()
|
return conversations.stream()
|
||||||
.map(conv -> {
|
.map(conv -> {
|
||||||
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conv.getId());
|
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conv.getId());
|
||||||
String lastMessage = messages.isEmpty() ? "" : messages.get(messages.size() - 1).getContent();
|
Message last = messages.isEmpty() ? null : messages.get(messages.size() - 1);
|
||||||
|
String lastMessage = last != null && last.getContent() != null ? last.getContent() : "";
|
||||||
return ConversationResponse.fromEntity(conv, lastMessage);
|
return ConversationResponse.fromEntity(conv, lastMessage);
|
||||||
})
|
})
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
@@ -97,7 +98,8 @@ public class ChatService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
||||||
String lastMessage = messages.isEmpty() ? "" : messages.get(messages.size() - 1).getContent();
|
Message last = messages.isEmpty() ? null : messages.get(messages.size() - 1);
|
||||||
|
String lastMessage = last != null && last.getContent() != null ? last.getContent() : "";
|
||||||
|
|
||||||
return ConversationResponse.fromEntity(conversation, lastMessage);
|
return ConversationResponse.fromEntity(conversation, lastMessage);
|
||||||
}
|
}
|
||||||
@@ -124,6 +126,10 @@ public class ChatService {
|
|||||||
message.setConversationId(conversationId);
|
message.setConversationId(conversationId);
|
||||||
message.setSenderId(userId);
|
message.setSenderId(userId);
|
||||||
message.setContent(request.getContent());
|
message.setContent(request.getContent());
|
||||||
|
message.setAttachmentUrl(request.getAttachmentUrl());
|
||||||
|
message.setAttachmentName(request.getAttachmentName());
|
||||||
|
message.setAttachmentMimeType(request.getAttachmentMimeType());
|
||||||
|
message.setAttachmentSizeBytes(request.getAttachmentSizeBytes());
|
||||||
message.setIsRead(false);
|
message.setIsRead(false);
|
||||||
message = messageRepository.save(message);
|
message = messageRepository.save(message);
|
||||||
|
|
||||||
@@ -158,7 +164,8 @@ public class ChatService {
|
|||||||
conversationRepository.save(conversation);
|
conversationRepository.save(conversation);
|
||||||
|
|
||||||
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
||||||
String lastMessage = messages.isEmpty() ? "" : messages.get(messages.size() - 1).getContent();
|
Message last = messages.isEmpty() ? null : messages.get(messages.size() - 1);
|
||||||
|
String lastMessage = last != null && last.getContent() != null ? last.getContent() : "";
|
||||||
return ConversationResponse.fromEntity(conversation, lastMessage);
|
return ConversationResponse.fromEntity(conversation, lastMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -180,7 +187,8 @@ public class ChatService {
|
|||||||
conversation = conversationRepository.save(conversation);
|
conversation = conversationRepository.save(conversation);
|
||||||
|
|
||||||
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
List<Message> messages = messageRepository.findByConversationIdOrderByTimestampAsc(conversationId);
|
||||||
String lastMessage = messages.isEmpty() ? "" : messages.get(messages.size() - 1).getContent();
|
Message last = messages.isEmpty() ? null : messages.get(messages.size() - 1);
|
||||||
|
String lastMessage = last != null && last.getContent() != null ? last.getContent() : "";
|
||||||
return ConversationResponse.fromEntity(conversation, lastMessage);
|
return ConversationResponse.fromEntity(conversation, lastMessage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user