diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobRequest.kt new file mode 100644 index 00000000..b276ac99 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobRequest.kt @@ -0,0 +1,8 @@ +package kr.co.vividnext.sodalive.v2.admin.ranking.creator + +import java.time.LocalDateTime + +data class AdminCreatorRankingSnapshotJobRequest( + val aggregationStartAtUtc: LocalDateTime, + val aggregationEndAtUtc: LocalDateTime +) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobResponse.kt new file mode 100644 index 00000000..2953c0bd --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobResponse.kt @@ -0,0 +1,34 @@ +package kr.co.vividnext.sodalive.v2.admin.ranking.creator + +import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobRecord +import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobStatus +import kr.co.vividnext.sodalive.v2.ranking.port.out.CreatorRankingSnapshotJobTrigger +import java.time.LocalDateTime + +data class AdminCreatorRankingSnapshotJobResponse( + val id: Long, + val aggregationStartAtUtc: LocalDateTime, + val aggregationEndAtUtc: LocalDateTime, + val trigger: CreatorRankingSnapshotJobTrigger, + val status: CreatorRankingSnapshotJobStatus, + val lastError: String?, + val retryable: Boolean, + val processingStartedAt: LocalDateTime?, + val processedAt: LocalDateTime? +) { + companion object { + fun from(job: CreatorRankingSnapshotJobRecord): AdminCreatorRankingSnapshotJobResponse { + return AdminCreatorRankingSnapshotJobResponse( + id = job.id!!, + aggregationStartAtUtc = job.aggregationStartAtUtc, + aggregationEndAtUtc = job.aggregationEndAtUtc, + trigger = job.trigger, + status = job.status, + lastError = job.lastError, + retryable = job.status == CreatorRankingSnapshotJobStatus.FAILED, + processingStartedAt = job.processingStartedAt, + processedAt = job.processedAt + ) + } + } +}