feat(content-ranking): 랭킹 공개 시각 정책을 추가한다
This commit is contained in:
@@ -25,7 +25,15 @@ class CreatorRankingPeriodPolicy {
|
||||
)
|
||||
}
|
||||
|
||||
fun resolveVisibleFromAtUtc(aggregationEndAtKst: LocalDateTime): LocalDateTime {
|
||||
return aggregationEndAtKst.plusHours(VISIBLE_DELAY_HOURS)
|
||||
.atZone(KST_ZONE)
|
||||
.withZoneSameInstant(UTC_ZONE)
|
||||
.toLocalDateTime()
|
||||
}
|
||||
|
||||
companion object {
|
||||
private const val VISIBLE_DELAY_HOURS = 9L
|
||||
private val KST_ZONE: ZoneId = ZoneId.of("Asia/Seoul")
|
||||
private val UTC_ZONE: ZoneId = ZoneId.of("UTC")
|
||||
}
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
package kr.co.vividnext.sodalive.v2.ranking.domain
|
||||
|
||||
enum class CreatorRankingType {
|
||||
WEEKLY
|
||||
}
|
||||
@@ -56,4 +56,14 @@ class CreatorRankingPeriodPolicyTest {
|
||||
assertEquals(LocalDateTime.of(2026, 5, 31, 15, 0), utcRange.startInclusiveUtc)
|
||||
assertEquals(LocalDateTime.of(2026, 6, 7, 15, 0), utcRange.endExclusiveUtc)
|
||||
}
|
||||
|
||||
@Test
|
||||
@DisplayName("집계 종료일 월요일 09시 KST를 공개 노출 UTC 시각으로 변환한다")
|
||||
fun shouldResolveVisibleFromAtUtcByAggregationEndAtKst() {
|
||||
val aggregationEndAtKst = LocalDateTime.of(2026, 6, 8, 0, 0)
|
||||
|
||||
val visibleFromAtUtc = policy.resolveVisibleFromAtUtc(aggregationEndAtKst)
|
||||
|
||||
assertEquals(LocalDateTime.of(2026, 6, 8, 0, 0), visibleFromAtUtc)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user