feat(content-ranking): 스냅샷 job 공개 메타데이터를 저장한다

This commit is contained in:
2026-06-24 23:45:30 +09:00
parent da1a63da23
commit bfbb5e6fd7
5 changed files with 29 additions and 0 deletions

View File

@@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.v2.ranking.adapter.out.persistence
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.v2.ranking.domain.CreatorRankingType
import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobStatus
import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobTrigger
import java.time.LocalDateTime
@@ -13,12 +14,19 @@ import javax.persistence.Table
@Entity
@Table(name = "creator_ranking_snapshot_job")
class CreatorRankingSnapshotJob(
@Enumerated(EnumType.STRING)
@Column(name = "ranking_type", nullable = false, length = 30)
val rankingType: CreatorRankingType,
@Column(name = "aggregation_start_at_utc", nullable = false)
val aggregationStartAtUtc: LocalDateTime,
@Column(name = "aggregation_end_at_utc", nullable = false)
val aggregationEndAtUtc: LocalDateTime,
@Column(name = "visible_from_at", nullable = false)
val visibleFromAtUtc: LocalDateTime,
@Enumerated(EnumType.STRING)
@Column(name = "trigger_type", nullable = false, length = 20)
val trigger: CreatorRankingSnapshotJobTrigger,

View File

@@ -73,8 +73,10 @@ class DefaultCreatorRankingSnapshotJobRepository(
private fun CreatorRankingSnapshotJobRecord.toEntity(): CreatorRankingSnapshotJob {
return CreatorRankingSnapshotJob(
rankingType = rankingType,
aggregationStartAtUtc = aggregationStartAtUtc,
aggregationEndAtUtc = aggregationEndAtUtc,
visibleFromAtUtc = visibleFromAtUtc,
trigger = trigger,
status = status,
lastError = lastError,
@@ -86,8 +88,10 @@ class DefaultCreatorRankingSnapshotJobRepository(
private fun CreatorRankingSnapshotJob.toRecord(): CreatorRankingSnapshotJobRecord {
return CreatorRankingSnapshotJobRecord(
id = id,
rankingType = rankingType,
aggregationStartAtUtc = aggregationStartAtUtc,
aggregationEndAtUtc = aggregationEndAtUtc,
visibleFromAtUtc = visibleFromAtUtc,
trigger = trigger,
status = status,
lastError = lastError,

View File

@@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.v2.ranking.port.out
import kr.co.vividnext.sodalive.v2.ranking.domain.CreatorRankingType
import java.time.LocalDateTime
interface CreatorRankingSnapshotJobPort {
@@ -36,8 +37,10 @@ enum class CreatorRankingSnapshotJobTrigger {
data class CreatorRankingSnapshotJobRecord(
val id: Long? = null,
val rankingType: CreatorRankingType,
val aggregationStartAtUtc: LocalDateTime,
val aggregationEndAtUtc: LocalDateTime,
val visibleFromAtUtc: LocalDateTime,
val trigger: CreatorRankingSnapshotJobTrigger,
val status: CreatorRankingSnapshotJobStatus,
val lastError: String?,