[#56] 예약 & 결제 프로세스 및 패키지 구조 재정의 #57

Merged
pricelees merged 45 commits from refactor/#56 into main 2025-10-09 09:33:29 +00:00
2 changed files with 53 additions and 15 deletions
Showing only changes of commit 7c02d9ceae - Show all commits

View File

@ -156,6 +156,27 @@ class DummyInitializer(
} }
} }
fun createExpiredOrCanceledReservation(
user: UserEntity,
status: ReservationStatus,
storeId: Long = IDGenerator.create(),
themeRequest: ThemeCreateRequest = ThemeFixture.createRequest,
scheduleRequest: ScheduleCreateRequest = ScheduleFixture.createRequest,
reservationRequest: PendingReservationCreateRequest = ReservationFixture.pendingCreateRequest,
): ReservationEntity {
return createPendingReservation(user, storeId, themeRequest, scheduleRequest, reservationRequest).apply {
this.status = status
}.also {
reservationRepository.save(it)
scheduleRepository.findByIdOrNull(it.scheduleId)?.let { schedule ->
schedule.status = ScheduleStatus.AVAILABLE
schedule.holdExpiredAt = null
scheduleRepository.save(schedule)
}
}
}
fun createPayment( fun createPayment(
reservationId: Long, reservationId: Long,
request: PaymentConfirmRequest = PaymentFixture.confirmRequest, request: PaymentConfirmRequest = PaymentFixture.confirmRequest,

View File

@ -299,21 +299,38 @@ object PaymentFixture {
easyPayDetail: EasyPayDetailResponse? = null, easyPayDetail: EasyPayDetailResponse? = null,
transferDetail: TransferDetailResponse? = null, transferDetail: TransferDetailResponse? = null,
orderId: String = randomString(25), orderId: String = randomString(25),
) = PaymentGatewayResponse( ): PaymentGatewayResponse {
paymentKey = paymentKey, var card: CardDetailResponse? = cardDetail
status = PaymentStatus.DONE, if (method == PaymentMethod.CARD && cardDetail == null) {
orderId = orderId, card = cardDetail(amount)
type = PaymentType.NORMAL, }
totalAmount = amount,
vat = (amount * 0.1).toInt(), var easypay: EasyPayDetailResponse? = easyPayDetail
suppliedAmount = (amount * 0.9).toInt(), if (method == PaymentMethod.EASY_PAY && easyPayDetail == null) {
method = method, easypay = easypayDetail(amount)
card = cardDetail, }
easyPay = easyPayDetail,
transfer = transferDetail, var transfer: TransferDetailResponse? = transferDetail
requestedAt = KoreaDateTime.nowWithOffset(), if (method == PaymentMethod.TRANSFER && transferDetail == null) {
approvedAt = KoreaDateTime.nowWithOffset().plusSeconds(5) transfer = transferDetail()
) }
return PaymentGatewayResponse(
paymentKey = paymentKey,
status = PaymentStatus.DONE,
orderId = orderId,
type = PaymentType.NORMAL,
totalAmount = amount,
vat = (amount * 0.1).toInt(),
suppliedAmount = (amount * 0.9).toInt(),
method = method,
card = card,
easyPay = easypay,
transfer = transfer,
requestedAt = KoreaDateTime.nowWithOffset(),
approvedAt = KoreaDateTime.nowWithOffset().plusSeconds(5)
)
}
fun cancelResponse( fun cancelResponse(
amount: Int, amount: Int,