From 8f4544ad7191a79cc10ab0bb3fa9ee25852704f4 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 25 Nov 2025 16:32:29 +0900 Subject: [PATCH] =?UTF-8?q?refactor(lang-detect):=20LanguageDetectEvent=20?= =?UTF-8?q?ID=20=ED=95=84=EB=93=9C=EB=A5=BC=20=EB=8B=A8=EC=9D=BC=20id?= =?UTF-8?q?=EB=A1=9C=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - LanguageDetectEvent의 contentId/commentId를 제거하고 공통 id(Long) 필드로 단순화 - LanguageDetectListener에서 targetType에 따라 id를 AudioContent/AudioContentComment/CharacterComment 조회에 사용하도록 수정 - AudioContentService, AudioContentCommentService, AudioContentDonationService, CharacterCommentService 등 이벤트 발행부를 새 시그니처(id + targetType)로 정리 --- .../comment/CharacterCommentService.kt | 4 ++-- .../sodalive/content/AudioContentService.kt | 2 +- .../sodalive/content/LanguageDetectEvent.kt | 23 ++++--------------- .../comment/AudioContentCommentService.kt | 2 +- .../donation/AudioContentDonationService.kt | 2 +- 5 files changed, 10 insertions(+), 23 deletions(-) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/comment/CharacterCommentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/comment/CharacterCommentService.kt index bf5e49a..425123c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/comment/CharacterCommentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/chat/character/comment/CharacterCommentService.kt @@ -75,7 +75,7 @@ class CharacterCommentService( if (languageCode.isNullOrBlank()) { applicationEventPublisher.publishEvent( LanguageDetectEvent( - commentId = entity.id!!, + id = entity.id!!, query = text, targetType = LanguageDetectTargetType.CHARACTER_COMMENT ) @@ -110,7 +110,7 @@ class CharacterCommentService( if (languageCode.isNullOrBlank()) { applicationEventPublisher.publishEvent( LanguageDetectEvent( - commentId = entity.id!!, + id = entity.id!!, query = text, targetType = LanguageDetectTargetType.CHARACTER_COMMENT ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt index 725dfe4..4b64d8a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/AudioContentService.kt @@ -344,7 +344,7 @@ class AudioContentService( applicationEventPublisher.publishEvent( LanguageDetectEvent( - contentId = audioContent.id!!, + id = audioContent.id!!, query = papagoQuery ) ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/LanguageDetectEvent.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/LanguageDetectEvent.kt index 7ba9a75..24d2c0b 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/LanguageDetectEvent.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/LanguageDetectEvent.kt @@ -26,10 +26,9 @@ enum class LanguageDetectTargetType { } class LanguageDetectEvent( - val contentId: Long? = null, + val id: Long, val query: String, - val targetType: LanguageDetectTargetType = LanguageDetectTargetType.CONTENT, - val commentId: Long? = null + val targetType: LanguageDetectTargetType = LanguageDetectTargetType.CONTENT ) data class PapagoLanguageDetectResponse( @@ -72,11 +71,7 @@ class LanguageDetectListener( } private fun handleContentLanguageDetect(event: LanguageDetectEvent) { - val contentId = event.contentId - if (contentId == null) { - log.warn("[PapagoLanguageDetect] contentId is null for CONTENT target. event={}", event) - return - } + val contentId = event.id val audioContent = audioContentRepository.findById(contentId).orElse(null) if (audioContent == null) { @@ -109,11 +104,7 @@ class LanguageDetectListener( } private fun handleCommentLanguageDetect(event: LanguageDetectEvent) { - val commentId = event.commentId - if (commentId == null) { - log.warn("[PapagoLanguageDetect] commentId is null for COMMENT target. event={}", event) - return - } + val commentId = event.id val comment = audioContentCommentRepository.findById(commentId).orElse(null) if (comment == null) { @@ -144,11 +135,7 @@ class LanguageDetectListener( } private fun handleCharacterCommentLanguageDetect(event: LanguageDetectEvent) { - val commentId = event.commentId - if (commentId == null) { - log.warn("[PapagoLanguageDetect] commentId is null for CHARACTER_COMMENT target. event={}", event) - return - } + val commentId = event.id val comment = characterCommentRepository.findById(commentId).orElse(null) if (comment == null) { diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt index 28f3717..c8663a2 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/comment/AudioContentCommentService.kt @@ -92,7 +92,7 @@ class AudioContentCommentService( if (languageCode.isNullOrBlank()) { applicationEventPublisher.publishEvent( LanguageDetectEvent( - commentId = savedContentComment.id!!, + id = savedContentComment.id!!, query = comment, targetType = LanguageDetectTargetType.COMMENT ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/donation/AudioContentDonationService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/donation/AudioContentDonationService.kt index 26cc8d6..99a4da5 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/content/donation/AudioContentDonationService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/donation/AudioContentDonationService.kt @@ -50,7 +50,7 @@ class AudioContentDonationService( if (request.languageCode.isNullOrBlank()) { applicationEventPublisher.publishEvent( LanguageDetectEvent( - commentId = savedComment.id!!, + id = savedComment.id!!, query = request.comment, targetType = LanguageDetectTargetType.COMMENT )