Skip to content

Commit 1c0d3d6

Browse files
authored
Merge pull request #34 from CommitField/feat/#20
Feat/#20
2 parents bba265c + 970dcbc commit 1c0d3d6

File tree

5 files changed

+151
-2
lines changed

5 files changed

+151
-2
lines changed
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
package cmf.commitField.domain.chat.chatMessage.entity;
2+
3+
import cmf.commitField.domain.chat.chatRoom.entity.ChatRoom;
4+
import cmf.commitField.domain.user.entity.User;
5+
import cmf.commitField.global.jpa.BaseEntity;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.FetchType;
8+
import jakarta.persistence.JoinColumn;
9+
import jakarta.persistence.ManyToOne;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Builder;
12+
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
15+
import java.time.LocalDateTime;
16+
17+
@Entity
18+
@Builder
19+
@Getter
20+
@NoArgsConstructor
21+
@AllArgsConstructor
22+
public class ChatMessage extends BaseEntity {
23+
24+
private String message;
25+
26+
private LocalDateTime sendTime;
27+
28+
@ManyToOne(fetch = FetchType.LAZY)
29+
@JoinColumn(name = "user_id")
30+
private User user;
31+
32+
@ManyToOne(fetch = FetchType.LAZY)
33+
@JoinColumn(name = "chat_room_id")
34+
private ChatRoom chatRoom;
35+
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
package cmf.commitField.domain.chat.chatRoom.entity;
2+
3+
import cmf.commitField.domain.chat.chatMessage.entity.ChatMessage;
4+
import cmf.commitField.domain.chat.userChatRoom.entity.UserChatRoom;
5+
import cmf.commitField.domain.user.entity.User;
6+
import cmf.commitField.global.jpa.BaseEntity;
7+
import jakarta.persistence.*;
8+
import lombok.AllArgsConstructor;
9+
import lombok.Builder;
10+
import lombok.Getter;
11+
import lombok.NoArgsConstructor;
12+
13+
import java.time.LocalDateTime;
14+
import java.util.List;
15+
16+
@Entity
17+
@Builder
18+
@Getter
19+
@NoArgsConstructor
20+
@AllArgsConstructor
21+
public class ChatRoom extends BaseEntity {
22+
23+
private String title;
24+
25+
private LocalDateTime deletedAt;
26+
27+
@ManyToOne(fetch = FetchType.LAZY)
28+
@JoinColumn(name = "user_id")
29+
private User user;
30+
31+
@OneToMany(mappedBy = "chatRoom", fetch = FetchType.LAZY)
32+
private List<UserChatRoom> userChatRooms;
33+
34+
@OneToMany(mappedBy = "chatRoom", fetch = FetchType.LAZY)
35+
private List<ChatMessage> chatMessages;
36+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package cmf.commitField.domain.chat.userChatRoom.entity;
2+
3+
import cmf.commitField.domain.chat.chatRoom.entity.ChatRoom;
4+
import cmf.commitField.domain.user.entity.User;
5+
import cmf.commitField.global.jpa.BaseEntity;
6+
import jakarta.persistence.Entity;
7+
import jakarta.persistence.FetchType;
8+
import jakarta.persistence.JoinColumn;
9+
import jakarta.persistence.ManyToOne;
10+
import lombok.AllArgsConstructor;
11+
import lombok.Builder;
12+
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
15+
@Entity
16+
@Getter
17+
@Builder
18+
@NoArgsConstructor
19+
@AllArgsConstructor
20+
public class UserChatRoom extends BaseEntity {
21+
22+
@ManyToOne(fetch = FetchType.LAZY)
23+
@JoinColumn(name = "user_id")
24+
private User user;
25+
26+
@ManyToOne(fetch = FetchType.LAZY)
27+
@JoinColumn(name = "chat_room_id")
28+
private ChatRoom chatRoom;
29+
}
Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,35 @@
11
package cmf.commitField.domain.user.entity;
22

3+
import cmf.commitField.domain.chat.chatMessage.entity.ChatMessage;
4+
import cmf.commitField.domain.chat.chatRoom.entity.ChatRoom;
5+
import cmf.commitField.domain.chat.userChatRoom.entity.UserChatRoom;
36
import cmf.commitField.global.jpa.BaseEntity;
47
import jakarta.persistence.Entity;
5-
import jakarta.persistence.Id;
8+
import jakarta.persistence.FetchType;
9+
import jakarta.persistence.OneToMany;
10+
import lombok.AllArgsConstructor;
611
import lombok.Builder;
712
import lombok.Getter;
13+
import lombok.NoArgsConstructor;
14+
15+
import java.util.List;
816

917
@Entity
1018
@Getter
11-
class User extends BaseEntity {
19+
@Builder
20+
@NoArgsConstructor
21+
@AllArgsConstructor
22+
public class User extends BaseEntity {
1223
private String email;
1324
private String nickname;
1425
private String password;
26+
27+
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
28+
private List<ChatRoom> chatRooms;
29+
30+
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
31+
private List<UserChatRoom> userChatRooms;
32+
33+
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
34+
private List<ChatMessage> chatMessages;
1535
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package cmf.commitField.global.websocket;
2+
3+
import org.springframework.context.annotation.Configuration;
4+
import org.springframework.messaging.simp.config.MessageBrokerRegistry;
5+
import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker;
6+
import org.springframework.web.socket.config.annotation.StompEndpointRegistry;
7+
import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer;
8+
9+
@Configuration
10+
@EnableWebSocketMessageBroker
11+
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {
12+
13+
@Override
14+
public void registerStompEndpoints(StompEndpointRegistry registry) {
15+
// ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐํ•  WebSocket ์—”๋“œํฌ์ธํŠธ
16+
registry.addEndpoint("/ws-stomp")
17+
.setAllowedOrigins("*")
18+
// SockJS ์‚ฌ์šฉ (WebSocket ๋ฏธ์ง€์› ๋ธŒ๋ผ์šฐ์ € ๋Œ€์‘)
19+
.withSockJS();
20+
}
21+
22+
@Override
23+
public void configureMessageBroker(MessageBrokerRegistry registry) {
24+
// ๋ฉ”์‹œ์ง€ ์†ก์‹  prefix
25+
registry.setApplicationDestinationPrefixes("/app");
26+
// ๋ฉ”์‹œ์ง€ ์ˆ˜์‹  prefix
27+
registry.enableSimpleBroker("/sub", "/topic", "/queue");
28+
}
29+
}

0 commit comments

Comments
ย (0)