diff --git a/src/main/java/com/back/domain/chat/dm/controller/PrivateChatWebSocketController.java b/src/main/java/com/back/domain/chat/dm/controller/PrivateChatWebSocketController.java deleted file mode 100644 index df61904a..00000000 --- a/src/main/java/com/back/domain/chat/dm/controller/PrivateChatWebSocketController.java +++ /dev/null @@ -1,4 +0,0 @@ -package com.back.domain.chat.dm.controller; - -public class PrivateChatWebSocketController { -} diff --git a/src/main/java/com/back/domain/user/entity/PrivateChatMessage.java b/src/main/java/com/back/domain/user/entity/PrivateChatMessage.java deleted file mode 100644 index 12226f5d..00000000 --- a/src/main/java/com/back/domain/user/entity/PrivateChatMessage.java +++ /dev/null @@ -1,26 +0,0 @@ -package com.back.domain.user.entity; - -import com.back.global.entity.BaseEntity; -import jakarta.persistence.Entity; -import jakarta.persistence.FetchType; -import jakarta.persistence.JoinColumn; -import jakarta.persistence.ManyToOne; -import lombok.Getter; -import lombok.NoArgsConstructor; - -@Entity -@Getter -@NoArgsConstructor -public class PrivateChatMessage extends BaseEntity { - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "from_user_id") - private User fromUser; - - @ManyToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "to_user_id") - private User toUser; - - private String content; - - private boolean isRead = false; -} diff --git a/src/main/java/com/back/domain/user/entity/User.java b/src/main/java/com/back/domain/user/entity/User.java index 6c2e5cf8..d57ebacd 100644 --- a/src/main/java/com/back/domain/user/entity/User.java +++ b/src/main/java/com/back/domain/user/entity/User.java @@ -51,14 +51,6 @@ public class User extends BaseEntity { @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List userTokens = new ArrayList<>(); - @Builder.Default - @OneToMany(mappedBy = "fromUser", cascade = CascadeType.ALL, orphanRemoval = true) - private List sentMessages = new ArrayList<>(); - - @Builder.Default - @OneToMany(mappedBy = "toUser", cascade = CascadeType.ALL, orphanRemoval = true) - private List receivedMessages = new ArrayList<>(); - @Builder.Default @OneToMany(mappedBy = "user", cascade = CascadeType.ALL, orphanRemoval = true) private List roomMembers = new ArrayList<>(); diff --git a/src/main/java/com/back/domain/user/repository/PrivateChatMessageRepository.java b/src/main/java/com/back/domain/user/repository/PrivateChatMessageRepository.java deleted file mode 100644 index fa7c9700..00000000 --- a/src/main/java/com/back/domain/user/repository/PrivateChatMessageRepository.java +++ /dev/null @@ -1,58 +0,0 @@ -package com.back.domain.user.repository; - -import com.back.domain.user.entity.PrivateChatMessage; -import com.back.domain.user.entity.User; -import org.springframework.data.domain.Page; -import org.springframework.data.domain.Pageable; -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.data.jpa.repository.Query; -import org.springframework.data.repository.query.Param; -import org.springframework.stereotype.Repository; - -import java.time.LocalDateTime; -import java.util.List; - -@Repository -public interface PrivateChatMessageRepository extends JpaRepository { - - // 두 사용자 간의 페이징된 대화 메시지 조회 (무한 스크롤용) - @Query("SELECT m FROM PrivateChatMessage m " + - "WHERE (m.fromUser.id = :userId1 AND m.toUser.id = :userId2) " + - "OR (m.fromUser.id = :userId2 AND m.toUser.id = :userId1) " + - "ORDER BY m.createdAt DESC") - Page findConversationBetweenUsers(@Param("userId1") Long userId1, - @Param("userId2") Long userId2, - Pageable pageable); - - // 두 사용자 간의 페이징된 대화 메시지 조회 (무한 스크롤용) - 최신 메시지부터 - @Query("SELECT m FROM PrivateChatMessage m " + - "WHERE ((m.fromUser.id = :userId1 AND m.toUser.id = :userId2) " + - "OR (m.fromUser.id = :userId2 AND m.toUser.id = :userId1)) " + - "AND m.createdAt > :timestamp " + - "ORDER BY m.createdAt ASC") - List findNewMessagesBetweenUsers(@Param("userId1") Long userId1, - @Param("userId2") Long userId2, - @Param("timestamp") LocalDateTime timestamp); - - // 두 사용자 간의 최근 20개 메시지 조회 (초기 로드용) - @Query("SELECT DISTINCT " + - "CASE WHEN m.fromUser.id = :userId THEN m.toUser ELSE m.fromUser END " + - "FROM PrivateChatMessage m " + - "WHERE m.fromUser.id = :userId OR m.toUser.id = :userId") - List findConversationPartners(@Param("userId") Long userId); - - // 두 사용자 간의 최신 메시지 조회 - @Query("SELECT m FROM PrivateChatMessage m " + - "WHERE (m.fromUser.id = :userId1 AND m.toUser.id = :userId2) " + - "OR (m.fromUser.id = :userId2 AND m.toUser.id = :userId1) " + - "ORDER BY m.createdAt DESC " + - "LIMIT 1") - PrivateChatMessage findLatestMessageBetweenUsers(@Param("userId1") Long userId1, - @Param("userId2") Long userId2); - - // 두 사용자 간의 전체 메시지 수 조회 - @Query("SELECT COUNT(m) FROM PrivateChatMessage m " + - "WHERE (m.fromUser.id = :userId1 AND m.toUser.id = :userId2) " + - "OR (m.fromUser.id = :userId2 AND m.toUser.id = :userId1)") - long countMessagesBetweenUsers(@Param("userId1") Long userId1, @Param("userId2") Long userId2); -} \ No newline at end of file