88import com .ai .lawyer .domain .post .repository .PostRepository ;
99import com .ai .lawyer .domain .poll .repository .PollVoteRepository ;
1010import com .ai .lawyer .domain .chatbot .repository .HistoryRepository ;
11+ import com .ai .lawyer .domain .chatbot .repository .ChatRepository ;
12+ import com .ai .lawyer .domain .chatbot .repository .ChatPrecedentRepository ;
13+ import com .ai .lawyer .domain .chatbot .repository .ChatLawRepository ;
1114import com .ai .lawyer .global .jwt .TokenProvider ;
1215import com .ai .lawyer .global .jwt .CookieUtil ;
1316import com .ai .lawyer .global .email .service .EmailService ;
@@ -33,6 +36,9 @@ public class MemberService {
3336 private final PostRepository postRepository ;
3437 private final PollVoteRepository pollVoteRepository ;
3538 private final HistoryRepository historyRepository ;
39+ private final ChatRepository chatRepository ;
40+ private final ChatPrecedentRepository chatPrecedentRepository ;
41+ private final ChatLawRepository chatLawRepository ;
3642
3743 public MemberService (
3844 MemberRepository memberRepository ,
@@ -43,7 +49,10 @@ public MemberService(
4349 EmailAuthService emailAuthService ,
4450 PostRepository postRepository ,
4551 PollVoteRepository pollVoteRepository ,
46- HistoryRepository historyRepository ) {
52+ HistoryRepository historyRepository ,
53+ ChatRepository chatRepository ,
54+ ChatPrecedentRepository chatPrecedentRepository ,
55+ ChatLawRepository chatLawRepository ) {
4756 this .memberRepository = memberRepository ;
4857 this .passwordEncoder = passwordEncoder ;
4958 this .tokenProvider = tokenProvider ;
@@ -53,6 +62,9 @@ public MemberService(
5362 this .postRepository = postRepository ;
5463 this .pollVoteRepository = pollVoteRepository ;
5564 this .historyRepository = historyRepository ;
65+ this .chatRepository = chatRepository ;
66+ this .chatPrecedentRepository = chatPrecedentRepository ;
67+ this .chatLawRepository = chatLawRepository ;
5668 }
5769
5870 @ org .springframework .beans .factory .annotation .Autowired (required = false )
@@ -225,37 +237,32 @@ public void deleteMember(String loginId) {
225237 // 2. 연관된 데이터 명시적 삭제 (순서 중요: FK 제약조건 고려)
226238 log .info ("연관 데이터 삭제 시작: memberId={}" , memberId );
227239
228- // 2-1. 채팅 히스토리 삭제 (Chat 엔티티도 cascade로 함께 삭제됨)
229- try {
230- historyRepository .deleteByMemberIdValue (memberId );
231- log .info ("채팅 히스토리 삭제 완료: memberId={}" , memberId );
232- } catch (Exception e ) {
233- log .error ("채팅 히스토리 삭제 실패: memberId={}, error={}" , memberId , e .getMessage ());
234- }
240+ // 2-1. ChatPrecedent, ChatLaw 삭제 (Chat의 FK 참조)
241+ chatPrecedentRepository .deleteByMemberIdValue (memberId );
242+ log .info ("채팅 판례 삭제 완료: memberId={}" , memberId );
235243
236- // 2-2. 투표 내역 삭제
237- try {
238- pollVoteRepository .deleteByMemberIdValue (memberId );
239- log .info ("투표 내역 삭제 완료: memberId={}" , memberId );
240- } catch (Exception e ) {
241- log .error ("투표 내역 삭제 실패: memberId={}, error={}" , memberId , e .getMessage ());
242- }
244+ chatLawRepository .deleteByMemberIdValue (memberId );
245+ log .info ("채팅 법령 삭제 완료: memberId={}" , memberId );
243246
244- // 2-3. 게시글 삭제 (Poll 엔티티도 cascade로 함께 삭제됨)
245- try {
246- postRepository .deleteByMemberIdValue (memberId );
247- log .info ("게시글 삭제 완료: memberId={}" , memberId );
248- } catch (Exception e ) {
249- log .error ("게시글 삭제 실패: memberId={}, error={}" , memberId , e .getMessage ());
250- }
247+ // 2-2. Chat 삭제 (History의 FK 참조)
248+ chatRepository .deleteByMemberIdValue (memberId );
249+ log .info ("채팅 삭제 완료: memberId={}" , memberId );
250+
251+ // 2-3. History 삭제 (Member의 FK 참조)
252+ historyRepository .deleteByMemberIdValue (memberId );
253+ log .info ("채팅 히스토리 삭제 완료: memberId={}" , memberId );
254+
255+ // 2-4. 투표 내역 삭제
256+ pollVoteRepository .deleteByMemberIdValue (memberId );
257+ log .info ("투표 내역 삭제 완료: memberId={}" , memberId );
258+
259+ // 2-5. 게시글 삭제 (Poll 엔티티도 cascade로 함께 삭제됨)
260+ postRepository .deleteByMemberIdValue (memberId );
261+ log .info ("게시글 삭제 완료: memberId={}" , memberId );
251262
252263 // 3. Redis 토큰 삭제
253- try {
254- tokenProvider .deleteAllTokens (loginId );
255- log .info ("Redis 토큰 삭제 완료: loginId={}" , loginId );
256- } catch (Exception e ) {
257- log .error ("Redis 토큰 삭제 실패: loginId={}, error={}" , loginId , e .getMessage ());
258- }
264+ tokenProvider .deleteAllTokens (loginId );
265+ log .info ("Redis 토큰 삭제 완료: loginId={}" , loginId );
259266
260267 // 4. 회원 정보 삭제
261268 final Long finalMemberId = memberId ;
0 commit comments