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() )