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 {
|
companion object {
|
||||||
|
private const val VISIBLE_DELAY_HOURS = 9L
|
||||||
private val KST_ZONE: ZoneId = ZoneId.of("Asia/Seoul")
|
private val KST_ZONE: ZoneId = ZoneId.of("Asia/Seoul")
|
||||||
private val UTC_ZONE: ZoneId = ZoneId.of("UTC")
|
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, 5, 31, 15, 0), utcRange.startInclusiveUtc)
|
||||||
assertEquals(LocalDateTime.of(2026, 6, 7, 15, 0), utcRange.endExclusiveUtc)
|
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