refactor: payment 도메인에서의 OffsetDateTime, LocalDateTime -> Instant 타입 변경

This commit is contained in:
이상진 2025-10-05 21:16:40 +09:00
parent 93cff516a1
commit 2fa4874ad7
8 changed files with 21 additions and 24 deletions

View File

@ -10,7 +10,7 @@ import com.sangdol.roomescape.payment.infrastructure.persistence.*
import io.github.oshai.kotlinlogging.KLogger import io.github.oshai.kotlinlogging.KLogger
import io.github.oshai.kotlinlogging.KotlinLogging import io.github.oshai.kotlinlogging.KotlinLogging
import org.springframework.stereotype.Component import org.springframework.stereotype.Component
import java.time.LocalDateTime import java.time.Instant
private val log: KLogger = KotlinLogging.logger {} private val log: KLogger = KotlinLogging.logger {}
@ -60,7 +60,7 @@ class PaymentWriter(
fun cancel( fun cancel(
userId: Long, userId: Long,
payment: PaymentEntity, payment: PaymentEntity,
requestedAt: LocalDateTime, requestedAt: Instant,
cancelResponse: PaymentClientCancelResponse cancelResponse: PaymentClientCancelResponse
): CanceledPaymentEntity { ): CanceledPaymentEntity {
log.debug { "[PaymentWriterV2.cancelPayment] 결제 취소 정보 저장 시작: payment.id=${payment.id}" } log.debug { "[PaymentWriterV2.cancelPayment] 결제 취소 정보 저장 시작: payment.id=${payment.id}" }

View File

@ -6,7 +6,7 @@ import com.fasterxml.jackson.databind.JsonNode
import com.fasterxml.jackson.databind.annotation.JsonDeserialize import com.fasterxml.jackson.databind.annotation.JsonDeserialize
import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus
import com.sangdol.roomescape.payment.infrastructure.persistence.CanceledPaymentEntity import com.sangdol.roomescape.payment.infrastructure.persistence.CanceledPaymentEntity
import java.time.LocalDateTime import java.time.Instant
import java.time.OffsetDateTime import java.time.OffsetDateTime
data class PaymentClientCancelResponse( data class PaymentClientCancelResponse(
@ -28,10 +28,10 @@ fun CancelDetail.toEntity(
id: Long, id: Long,
paymentId: Long, paymentId: Long,
canceledBy: Long, canceledBy: Long,
cancelRequestedAt: LocalDateTime cancelRequestedAt: Instant
) = CanceledPaymentEntity( ) = CanceledPaymentEntity(
id = id, id = id,
canceledAt = this.canceledAt, canceledAt = this.canceledAt.toInstant(),
requestedAt = cancelRequestedAt, requestedAt = cancelRequestedAt,
paymentId = paymentId, paymentId = paymentId,
canceledBy = canceledBy, canceledBy = canceledBy,

View File

@ -34,8 +34,8 @@ fun PaymentClientConfirmResponse.toEntity(
paymentKey = this.paymentKey, paymentKey = this.paymentKey,
orderId = orderId, orderId = orderId,
totalAmount = this.totalAmount, totalAmount = this.totalAmount,
requestedAt = this.requestedAt, requestedAt = this.requestedAt.toInstant(),
approvedAt = this.approvedAt, approvedAt = this.approvedAt.toInstant(),
type = paymentType, type = paymentType,
method = this.method, method = this.method,
status = this.status, status = this.status,

View File

@ -3,8 +3,7 @@ package com.sangdol.roomescape.payment.infrastructure.persistence
import com.sangdol.common.persistence.PersistableBaseEntity import com.sangdol.common.persistence.PersistableBaseEntity
import jakarta.persistence.Entity import jakarta.persistence.Entity
import jakarta.persistence.Table import jakarta.persistence.Table
import java.time.LocalDateTime import java.time.Instant
import java.time.OffsetDateTime
@Entity @Entity
@Table(name = "canceled_payment") @Table(name = "canceled_payment")
@ -12,8 +11,8 @@ class CanceledPaymentEntity(
id: Long, id: Long,
val paymentId: Long, val paymentId: Long,
val requestedAt: LocalDateTime, val requestedAt: Instant,
val canceledAt: OffsetDateTime, val canceledAt: Instant,
val canceledBy: Long, val canceledBy: Long,
val cancelReason: String, val cancelReason: String,
val cancelAmount: Int, val cancelAmount: Int,

View File

@ -8,7 +8,7 @@ import jakarta.persistence.Entity
import jakarta.persistence.EnumType import jakarta.persistence.EnumType
import jakarta.persistence.Enumerated import jakarta.persistence.Enumerated
import jakarta.persistence.Table import jakarta.persistence.Table
import java.time.OffsetDateTime import java.time.Instant
@Entity @Entity
@Table(name = "payment") @Table(name = "payment")
@ -19,8 +19,8 @@ class PaymentEntity(
val paymentKey: String, val paymentKey: String,
val orderId: String, val orderId: String,
val totalAmount: Int, val totalAmount: Int,
val requestedAt: OffsetDateTime, val requestedAt: Instant,
val approvedAt: OffsetDateTime, val approvedAt: Instant,
@Enumerated(EnumType.STRING) @Enumerated(EnumType.STRING)
val type: PaymentType, val type: PaymentType,

View File

@ -6,8 +6,7 @@ import com.sangdol.roomescape.payment.infrastructure.common.PaymentStatus
import com.sangdol.roomescape.payment.infrastructure.common.PaymentType import com.sangdol.roomescape.payment.infrastructure.common.PaymentType
import com.sangdol.roomescape.payment.infrastructure.persistence.* import com.sangdol.roomescape.payment.infrastructure.persistence.*
import com.sangdol.roomescape.payment.web.PaymentDetailResponse.* import com.sangdol.roomescape.payment.web.PaymentDetailResponse.*
import java.time.LocalDateTime import java.time.Instant
import java.time.OffsetDateTime
data class PaymentConfirmRequest( data class PaymentConfirmRequest(
val paymentKey: String, val paymentKey: String,
@ -24,7 +23,7 @@ data class PaymentCreateResponse(
data class PaymentCancelRequest( data class PaymentCancelRequest(
val reservationId: Long, val reservationId: Long,
val cancelReason: String, val cancelReason: String,
val requestedAt: LocalDateTime = LocalDateTime.now() val requestedAt: Instant = Instant.now()
) )
data class PaymentWithDetailResponse( data class PaymentWithDetailResponse(
@ -32,8 +31,8 @@ data class PaymentWithDetailResponse(
val totalAmount: Int, val totalAmount: Int,
val method: String, val method: String,
val status: PaymentStatus, val status: PaymentStatus,
val requestedAt: OffsetDateTime, val requestedAt: Instant,
val approvedAt: OffsetDateTime, val approvedAt: Instant,
val detail: PaymentDetailResponse?, val detail: PaymentDetailResponse?,
val cancel: PaymentCancelDetailResponse?, val cancel: PaymentCancelDetailResponse?,
) )
@ -120,8 +119,8 @@ fun PaymentEasypayPrepaidDetailEntity.toEasyPayPrepaidDetailResponse(): EasyPayP
} }
data class PaymentCancelDetailResponse( data class PaymentCancelDetailResponse(
val cancellationRequestedAt: LocalDateTime, val cancellationRequestedAt: Instant,
val cancellationApprovedAt: OffsetDateTime?, val cancellationApprovedAt: Instant?,
val cancelReason: String, val cancelReason: String,
val canceledBy: Long, val canceledBy: Long,
) )

View File

@ -30,7 +30,7 @@ import com.sangdol.roomescape.theme.web.ThemeCreateRequest
import com.sangdol.roomescape.theme.web.toEntity import com.sangdol.roomescape.theme.web.toEntity
import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity import com.sangdol.roomescape.user.infrastructure.persistence.UserEntity
import org.springframework.data.repository.findByIdOrNull import org.springframework.data.repository.findByIdOrNull
import java.time.LocalDateTime import java.time.Instant
class DummyInitializer( class DummyInitializer(
private val storeRepository: StoreRepository, private val storeRepository: StoreRepository,
@ -206,7 +206,7 @@ class DummyInitializer(
return paymentWriter.cancel( return paymentWriter.cancel(
userId, userId,
payment, payment,
requestedAt = LocalDateTime.now(), requestedAt = Instant.now(),
clientCancelResponse clientCancelResponse
) )
} }

View File

@ -26,7 +26,6 @@ import com.sangdol.roomescape.user.web.MIN_PASSWORD_LENGTH
import com.sangdol.roomescape.user.web.UserCreateRequest import com.sangdol.roomescape.user.web.UserCreateRequest
import java.time.LocalDate import java.time.LocalDate
import java.time.LocalTime import java.time.LocalTime
import java.time.OffsetDateTime
const val INVALID_PK: Long = 9999L const val INVALID_PK: Long = 9999L
val IDGenerator = TsidIDGenerator(TsidFactory(0)) val IDGenerator = TsidIDGenerator(TsidFactory(0))