시리즈 상세, 시리즈 키워드 번역 엔티티 추가

This commit is contained in:
2025-12-15 16:27:29 +09:00
parent 45ee55028f
commit e00a9ccff5
2 changed files with 61 additions and 0 deletions

View File

@@ -0,0 +1,11 @@
package kr.co.vividnext.sodalive.content.series.translation
import kr.co.vividnext.sodalive.common.BaseEntity
import javax.persistence.Entity
@Entity
class SeriesGenreTranslation(
val seriesGenreId: Long,
val locale: String,
val genre: String
) : BaseEntity()

View File

@@ -0,0 +1,50 @@
package kr.co.vividnext.sodalive.content.series.translation
import com.fasterxml.jackson.module.kotlin.jacksonObjectMapper
import com.fasterxml.jackson.module.kotlin.readValue
import kr.co.vividnext.sodalive.common.BaseEntity
import javax.persistence.AttributeConverter
import javax.persistence.Column
import javax.persistence.Convert
import javax.persistence.Converter
import javax.persistence.Entity
@Entity
class SeriesTranslation(
val seriesId: Long,
val locale: String,
@Column(columnDefinition = "json")
@Convert(converter = SeriesTranslationPayloadConverter::class)
var renderedPayload: SeriesTranslationPayload
) : BaseEntity()
data class SeriesTranslationPayload(
val title: String,
val introduction: String,
val keywords: String
)
@Converter(autoApply = false)
class SeriesTranslationPayloadConverter : AttributeConverter<SeriesTranslationPayload, String> {
override fun convertToDatabaseColumn(attribute: SeriesTranslationPayload?): String {
if (attribute == null) return "{}"
return objectMapper.writeValueAsString(attribute)
}
override fun convertToEntityAttribute(dbData: String?): SeriesTranslationPayload {
if (dbData.isNullOrBlank()) {
return SeriesTranslationPayload(
title = "",
introduction = "",
keywords = ""
)
}
return objectMapper.readValue(dbData)
}
companion object {
private val objectMapper = jacksonObjectMapper()
}
}