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 11package 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 ;
36import cmf .commitField .global .jpa .BaseEntity ;
47import jakarta .persistence .Entity ;
5- import jakarta .persistence .Id ;
8+ import jakarta .persistence .FetchType ;
9+ import jakarta .persistence .OneToMany ;
10+ import lombok .AllArgsConstructor ;
611import lombok .Builder ;
712import 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}
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