AI 캐릭터, 콘텐츠 등록/수정 시 번역 데이터 생성

This commit is contained in:
2025-12-12 04:52:02 +09:00
parent 5d925e98e0
commit 8fec60db11
7 changed files with 266 additions and 4 deletions

View File

@@ -21,12 +21,16 @@ import kr.co.vividnext.sodalive.content.order.OrderType
import kr.co.vividnext.sodalive.content.pin.PinContent
import kr.co.vividnext.sodalive.content.pin.PinContentRepository
import kr.co.vividnext.sodalive.content.theme.AudioContentThemeQueryRepository
import kr.co.vividnext.sodalive.content.translation.ContentTranslation
import kr.co.vividnext.sodalive.content.translation.ContentTranslationPayload
import kr.co.vividnext.sodalive.content.translation.ContentTranslationRepository
import kr.co.vividnext.sodalive.content.translation.TranslatedContent
import kr.co.vividnext.sodalive.explorer.ExplorerQueryRepository
import kr.co.vividnext.sodalive.extensions.convertLocalDateTime
import kr.co.vividnext.sodalive.fcm.FcmEvent
import kr.co.vividnext.sodalive.fcm.FcmEventType
import kr.co.vividnext.sodalive.i18n.translation.LanguageTranslationEvent
import kr.co.vividnext.sodalive.i18n.translation.LanguageTranslationTargetType
import kr.co.vividnext.sodalive.i18n.translation.PapagoTranslationService
import kr.co.vividnext.sodalive.i18n.translation.TranslateRequest
import kr.co.vividnext.sodalive.member.Member
@@ -167,6 +171,13 @@ class AudioContentService(
audioContent.audioContentHashTags.addAll(newAudioContentHashTagList)
}
applicationEventPublisher.publishEvent(
LanguageTranslationEvent(
id = request.contentId,
targetType = LanguageTranslationTargetType.CONTENT
)
)
}
@Transactional
@@ -357,6 +368,13 @@ class AudioContentService(
)
}
applicationEventPublisher.publishEvent(
LanguageTranslationEvent(
id = audioContent.id!!,
targetType = LanguageTranslationTargetType.CONTENT
)
)
return CreateAudioContentResponse(contentId = audioContent.id!!)
}
@@ -785,14 +803,14 @@ class AudioContentService(
val translatedDetail = translatedTexts[index++]
val translatedTags = translatedTexts[index]
val payload = kr.co.vividnext.sodalive.content.translation.ContentTranslationPayload(
val payload = ContentTranslationPayload(
title = translatedTitle,
detail = translatedDetail,
tags = translatedTags
)
contentTranslationRepository.save(
kr.co.vividnext.sodalive.content.translation.ContentTranslation(
ContentTranslation(
contentId = audioContent.id!!,
locale = locale,
renderedPayload = payload