File tree Expand file tree Collapse file tree 5 files changed +151
-2
lines changed
src/main/java/cmf/commitField Expand file tree Collapse file tree 5 files changed +151
-2
lines changed Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change
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
+ }
Original file line number Diff line number Diff line change 1
1
package cmf .commitField .domain .user .entity ;
2
2
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 ;
3
6
import cmf .commitField .global .jpa .BaseEntity ;
4
7
import jakarta .persistence .Entity ;
5
- import jakarta .persistence .Id ;
8
+ import jakarta .persistence .FetchType ;
9
+ import jakarta .persistence .OneToMany ;
10
+ import lombok .AllArgsConstructor ;
6
11
import lombok .Builder ;
7
12
import lombok .Getter ;
13
+ import lombok .NoArgsConstructor ;
14
+
15
+ import java .util .List ;
8
16
9
17
@ Entity
10
18
@ Getter
11
- class User extends BaseEntity {
19
+ @ Builder
20
+ @ NoArgsConstructor
21
+ @ AllArgsConstructor
22
+ public class User extends BaseEntity {
12
23
private String email ;
13
24
private String nickname ;
14
25
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 ;
15
35
}
Original file line number Diff line number Diff line change
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
+ }
You canโt perform that action at this time.
0 commit comments