From 4165c54a28e0b143b23b31d1a891faf468a11019 Mon Sep 17 00:00:00 2001 From: Klaus Date: Tue, 9 Jun 2026 11:50:16 +0900 Subject: [PATCH] =?UTF-8?q?feat(ranking):=20=EA=B4=80=EB=A6=AC=EC=9E=90=20?= =?UTF-8?q?=EC=8A=A4=EB=83=85=EC=83=B7=20job=20=EC=9D=91=EB=8B=B5=EC=9D=84?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AdminCreatorRankingSnapshotJobRequest.kt | 8 +++++ .../AdminCreatorRankingSnapshotJobResponse.kt | 34 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobRequest.kt create mode 100644 src/main/kotlin/kr/co/vividnext/sodalive/v2/admin/ranking/creator/AdminCreatorRankingSnapshotJobResponse.kt 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 + ) + } + } +}