From 9aaa988f76188a0a33545cf84ddfb3a708403d72 Mon Sep 17 00:00:00 2001 From: pricelees Date: Mon, 18 Aug 2025 16:40:05 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Tosspay=20DTO=20=ED=95=84=EB=93=9C?= =?UTF-8?q?=20=ED=83=80=EC=9E=85=20=EC=B6=94=EA=B0=80=20=EB=B0=8F=20?= =?UTF-8?q?=EC=97=94=ED=8B=B0=ED=8B=B0=20=EB=B3=80=ED=99=98=20=ED=99=95?= =?UTF-8?q?=EC=9E=A5=ED=95=A8=EC=88=98=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../client/v2/TosspaymentCancelDTO.kt | 24 ++++++++++++++++++- .../client/v2/TosspaymentConfirmDTO.kt | 2 +- .../web/ReservationWithPaymentDTO.kt | 6 +++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentCancelDTO.kt b/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentCancelDTO.kt index cb7d535b..57d440e2 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentCancelDTO.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentCancelDTO.kt @@ -6,6 +6,8 @@ import com.fasterxml.jackson.databind.JsonDeserializer import com.fasterxml.jackson.databind.JsonNode import com.fasterxml.jackson.databind.annotation.JsonDeserialize import roomescape.payment.infrastructure.common.PaymentStatus +import roomescape.payment.infrastructure.persistence.v2.CanceledPaymentEntityV2 +import java.time.LocalDateTime import java.time.OffsetDateTime data class PaymentCancelRequestV2( @@ -26,6 +28,25 @@ data class CancelDetail( val transferDiscountAmount: Int, val easyPayDiscountAmount: Int, val canceledAt: OffsetDateTime, + val cancelReason: String +) + +fun CancelDetail.toEntity( + id: Long, + paymentId: Long, + canceledBy: Long, + cancelRequestedAt: LocalDateTime +) = CanceledPaymentEntityV2( + id = id, + canceledAt = this.canceledAt, + requestedAt = cancelRequestedAt, + paymentId = paymentId, + canceledBy = canceledBy, + cancelReason = this.cancelReason, + cancelAmount = this.cancelAmount, + cardDiscountAmount = this.cardDiscountAmount, + transferDiscountAmount = this.transferDiscountAmount, + easypayDiscountAmount = this.easyPayDiscountAmount ) class CancelDetailDeserializer : JsonDeserializer() { @@ -46,7 +67,8 @@ class CancelDetailDeserializer : JsonDeserializer() { cardDiscountAmount = targetNode.get("cardDiscountAmount").asInt(), transferDiscountAmount = targetNode.get("transferDiscountAmount").asInt(), easyPayDiscountAmount = targetNode.get("easyPayDiscountAmount").asInt(), - canceledAt = OffsetDateTime.parse(targetNode.get("canceledAt").asText()) + canceledAt = OffsetDateTime.parse(targetNode.get("canceledAt").asText()), + cancelReason = targetNode.get("cancelReason").asText() ) } } diff --git a/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentConfirmDTO.kt b/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentConfirmDTO.kt index 819ac4b4..0c5a3ce8 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentConfirmDTO.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/client/v2/TosspaymentConfirmDTO.kt @@ -12,7 +12,7 @@ import java.time.OffsetDateTime data class PaymentConfirmRequest( val paymentKey: String, val orderId: String, - val amount: Long, + val amount: Int, ) data class PaymentConfirmResponse( diff --git a/src/main/kotlin/roomescape/reservation/web/ReservationWithPaymentDTO.kt b/src/main/kotlin/roomescape/reservation/web/ReservationWithPaymentDTO.kt index 466765d6..07b2a444 100644 --- a/src/main/kotlin/roomescape/reservation/web/ReservationWithPaymentDTO.kt +++ b/src/main/kotlin/roomescape/reservation/web/ReservationWithPaymentDTO.kt @@ -6,6 +6,7 @@ import roomescape.payment.infrastructure.common.PaymentType import roomescape.reservation.infrastructure.persistence.ReservationEntity import roomescape.reservation.infrastructure.persistence.ReservationStatus import java.time.LocalDate +import java.time.LocalDateTime import java.time.LocalTime data class ReservationCreateRequest( @@ -33,7 +34,7 @@ fun ReservationEntity.toCreateResponseV2() = ReservationCreateResponseV2( data class ReservationPaymentRequest( val paymentKey: String, val orderId: String, - val amount: Long, + val amount: Int, val paymentType: PaymentType ) @@ -51,5 +52,6 @@ data class ReservationPaymentResponse( ) data class ReservationCancelRequest( - val cancelReason: String + val cancelReason: String, + val requestedAt: LocalDateTime = LocalDateTime.now() )