From 6c093aeb396503e81ac4d95e5b6bbae61769168b Mon Sep 17 00:00:00 2001 From: pricelees Date: Sun, 7 Sep 2025 21:26:59 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20payment=20=EB=8F=84=EB=A9=94?= =?UTF-8?q?=EC=9D=B8=20=EB=82=B4=20Entity=20&=20Repository=20=EC=9E=AC?= =?UTF-8?q?=EC=A0=95=EC=9D=98=20=EB=B0=8F=20V2=20=EC=A0=91=EB=AF=B8?= =?UTF-8?q?=EC=82=AC=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/CanceledPaymentEntity.kt | 37 ++++++--------- .../persistence/CanceledPaymentRepository.kt | 2 +- .../{v2 => }/PaymentDetailEntity.kt | 6 +-- .../{v2 => }/PaymentDetailRepository.kt | 2 +- .../persistence/PaymentEntity.kt | 46 +++++++++++-------- .../persistence/PaymentRepository.kt | 4 -- .../persistence/CanceledReservationEntity.kt | 2 +- .../CanceledReservationRepository.kt | 2 +- 8 files changed, 45 insertions(+), 56 deletions(-) rename src/main/kotlin/roomescape/payment/infrastructure/persistence/{v2 => }/PaymentDetailEntity.kt (92%) rename src/main/kotlin/roomescape/payment/infrastructure/persistence/{v2 => }/PaymentDetailRepository.kt (78%) rename src/main/kotlin/roomescape/{reservation_v2 => reservation}/infrastructure/persistence/CanceledReservationEntity.kt (90%) rename src/main/kotlin/roomescape/{reservation_v2 => reservation}/infrastructure/persistence/CanceledReservationRepository.kt (71%) diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt index 133e3eb4..f9085e7c 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentEntity.kt @@ -1,33 +1,24 @@ package roomescape.payment.infrastructure.persistence -import jakarta.persistence.Column import jakarta.persistence.Entity -import jakarta.persistence.Id import jakarta.persistence.Table -import roomescape.common.entity.BaseEntity +import roomescape.common.entity.PersistableBaseEntity +import java.time.LocalDateTime import java.time.OffsetDateTime @Entity -@Table(name = "canceled_payments") +@Table(name = "canceled_payment") class CanceledPaymentEntity( - @Id - @Column(name = "canceled_payment_id") - private var _id: Long?, + id: Long, - @Column(name = "payment_key", nullable = false) - var paymentKey: String, + val paymentId: Long, + val requestedAt: LocalDateTime, + val canceledAt: OffsetDateTime, + val canceledBy: Long, + val cancelReason: String, + val cancelAmount: Int, + val cardDiscountAmount: Int, + val transferDiscountAmount: Int, + val easypayDiscountAmount: Int, +) : PersistableBaseEntity(id) - @Column(name = "cancel_reason", nullable = false) - var cancelReason: String, - - @Column(name = "cancel_amount", nullable = false) - var cancelAmount: Long, - - @Column(name = "approved_at", nullable = false) - var approvedAt: OffsetDateTime, - - @Column(name = "canceled_at", nullable = false) - var canceledAt: OffsetDateTime, -): BaseEntity() { - override fun getId(): Long? = _id -} diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentRepository.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentRepository.kt index 70466653..75028118 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentRepository.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/CanceledPaymentRepository.kt @@ -3,5 +3,5 @@ package roomescape.payment.infrastructure.persistence import org.springframework.data.jpa.repository.JpaRepository interface CanceledPaymentRepository : JpaRepository { - fun findByPaymentKey(paymentKey: String): CanceledPaymentEntity? + fun findByPaymentId(paymentId: Long): CanceledPaymentEntity? } diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailEntity.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailEntity.kt similarity index 92% rename from src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailEntity.kt rename to src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailEntity.kt index 43969ef6..807aaaf3 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailEntity.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailEntity.kt @@ -1,9 +1,8 @@ -package roomescape.payment.infrastructure.persistence.v2 +package roomescape.payment.infrastructure.persistence import jakarta.persistence.* import roomescape.common.entity.PersistableBaseEntity import roomescape.payment.infrastructure.common.* -import kotlin.jvm.Transient @Entity @Table(name = "payment_detail") @@ -14,9 +13,6 @@ open class PaymentDetailEntity( open val paymentId: Long, open val suppliedAmount: Int, open val vat: Int, - - @Transient - private var isNewEntity: Boolean = true ) : PersistableBaseEntity(id) @Entity diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailRepository.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailRepository.kt similarity index 78% rename from src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailRepository.kt rename to src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailRepository.kt index 516b7d04..a851c4ed 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/v2/PaymentDetailRepository.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentDetailRepository.kt @@ -1,4 +1,4 @@ -package roomescape.payment.infrastructure.persistence.v2 +package roomescape.payment.infrastructure.persistence import org.springframework.data.jpa.repository.JpaRepository diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentEntity.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentEntity.kt index f3c80bd6..748dad84 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentEntity.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentEntity.kt @@ -1,32 +1,38 @@ package roomescape.payment.infrastructure.persistence -import jakarta.persistence.* -import roomescape.common.entity.BaseEntity -import roomescape.reservation.infrastructure.persistence.ReservationEntity +import jakarta.persistence.Entity +import jakarta.persistence.EnumType +import jakarta.persistence.Enumerated +import jakarta.persistence.Table +import roomescape.common.entity.PersistableBaseEntity +import roomescape.payment.infrastructure.common.PaymentMethod +import roomescape.payment.infrastructure.common.PaymentStatus +import roomescape.payment.infrastructure.common.PaymentType import java.time.OffsetDateTime @Entity -@Table(name = "payments") +@Table(name = "payment") class PaymentEntity( - @Id - @Column(name = "payment_id") - private var _id: Long?, + id: Long, - @Column(name = "order_id", nullable = false) - var orderId: String, + val reservationId: Long, + val paymentKey: String, + val orderId: String, + val totalAmount: Int, + val requestedAt: OffsetDateTime, + val approvedAt: OffsetDateTime, - @Column(name="payment_key", nullable = false) - var paymentKey: String, + @Enumerated(EnumType.STRING) + val type: PaymentType, - @Column(name="total_amount", nullable = false) - var totalAmount: Long, + @Enumerated(EnumType.STRING) + val method: PaymentMethod, - @OneToOne(fetch = FetchType.LAZY) - @JoinColumn(name = "reservation_id", nullable = false) - var reservation: ReservationEntity, + @Enumerated(EnumType.STRING) + var status: PaymentStatus +) : PersistableBaseEntity(id) { - @Column(name="approved_at", nullable = false) - var approvedAt: OffsetDateTime -): BaseEntity() { - override fun getId(): Long? = _id + fun cancel() { + this.status = PaymentStatus.CANCELED + } } diff --git a/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentRepository.kt b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentRepository.kt index 52180c4d..9b872d25 100644 --- a/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentRepository.kt +++ b/src/main/kotlin/roomescape/payment/infrastructure/persistence/PaymentRepository.kt @@ -4,9 +4,5 @@ import org.springframework.data.jpa.repository.JpaRepository interface PaymentRepository : JpaRepository { - fun existsByReservationId(reservationId: Long): Boolean - fun findByReservationId(reservationId: Long): PaymentEntity? - - fun deleteByPaymentKey(paymentKey: String) } diff --git a/src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationEntity.kt b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationEntity.kt similarity index 90% rename from src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationEntity.kt rename to src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationEntity.kt index b6818369..e8fc940e 100644 --- a/src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationEntity.kt +++ b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationEntity.kt @@ -1,4 +1,4 @@ -package roomescape.reservation_v2.infrastructure.persistence +package roomescape.reservation.infrastructure.persistence import jakarta.persistence.Entity import jakarta.persistence.EnumType diff --git a/src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationRepository.kt b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationRepository.kt similarity index 71% rename from src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationRepository.kt rename to src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationRepository.kt index 4f68884c..5b6ce866 100644 --- a/src/main/kotlin/roomescape/reservation_v2/infrastructure/persistence/CanceledReservationRepository.kt +++ b/src/main/kotlin/roomescape/reservation/infrastructure/persistence/CanceledReservationRepository.kt @@ -1,4 +1,4 @@ -package roomescape.reservation_v2.infrastructure.persistence +package roomescape.reservation.infrastructure.persistence import org.springframework.data.jpa.repository.JpaRepository