fix(chat-banner): 관리자 배너 목록에 언어 표기를 추가한다

This commit is contained in:
2026-04-02 15:51:50 +09:00
parent ee14389786
commit d3b1f4bcd4
4 changed files with 53 additions and 3 deletions

View File

@@ -62,7 +62,13 @@ class AdminChatBannerController(
val banners = bannerService.getActiveBanners(pageable)
val response = ChatCharacterBannerListPageResponse(
totalCount = banners.totalElements,
content = banners.content.map { ChatCharacterBannerResponse.from(it, imageHost) }
content = banners.content.map {
ChatCharacterBannerResponse.from(
banner = it,
imageHost = imageHost,
appendLanguageToCharacterName = true
)
}
)
ApiResponse.ok(response)

View File

@@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.admin.chat.dto
import kr.co.vividnext.sodalive.chat.character.ChatCharacterBanner
import kr.co.vividnext.sodalive.i18n.Lang
/**
* 캐릭터 배너 응답 DTO
@@ -12,14 +13,30 @@ data class ChatCharacterBannerResponse(
val characterName: String
) {
companion object {
fun from(banner: ChatCharacterBanner, imageHost: String): ChatCharacterBannerResponse {
fun from(
banner: ChatCharacterBanner,
imageHost: String,
appendLanguageToCharacterName: Boolean = false
): ChatCharacterBannerResponse {
return ChatCharacterBannerResponse(
id = banner.id!!,
imagePath = "$imageHost/${banner.imagePath}",
characterId = banner.chatCharacter.id!!,
characterName = banner.chatCharacter.name
characterName = if (appendLanguageToCharacterName) {
"${banner.chatCharacter.name} (${getLanguageLabel(banner.lang)})"
} else {
banner.chatCharacter.name
}
)
}
private fun getLanguageLabel(lang: Lang): String {
return when (lang) {
Lang.KO -> "한국어"
Lang.EN -> "영어"
Lang.JA -> "일본어"
}
}
}
}