generated from pricelees/issue-pr-template
feat: Payment 구성에 필요한 계좌이체, 카드, 취소, 간편결제 도메인 추가
This commit is contained in:
parent
c921a9a89a
commit
e25a4f6325
@ -0,0 +1,38 @@
|
|||||||
|
package com.sangdol.tosspaymock.business.domain.cancel
|
||||||
|
|
||||||
|
import com.sangdol.tosspaymock.business.domain.RandomPaymentValueGenerator
|
||||||
|
import java.time.OffsetDateTime
|
||||||
|
|
||||||
|
class Cancellation(
|
||||||
|
val transactionKey: String,
|
||||||
|
val cancelReason: String,
|
||||||
|
val taxExemptionAmount: Int = 0,
|
||||||
|
val canceledAt: OffsetDateTime,
|
||||||
|
val cardDiscountAmount: Int,
|
||||||
|
val transferDiscountAmount: Int,
|
||||||
|
val easyPayDiscountAmount: Int,
|
||||||
|
val receiptKey: String? = null,
|
||||||
|
val cancelStatus: String = "DONE",
|
||||||
|
val cancelRequestId: String? = null,
|
||||||
|
val cancelAmount: Int,
|
||||||
|
val taxFreeAmount: Int = 0,
|
||||||
|
val refundableAmount: Int = 0,
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
fun random(
|
||||||
|
cancelReason: String,
|
||||||
|
cancelAmount: Int,
|
||||||
|
easyPayDiscountAmount: Int,
|
||||||
|
cardDiscountAmount: Int,
|
||||||
|
transferDiscountAmount: Int,
|
||||||
|
) = Cancellation(
|
||||||
|
transactionKey = RandomPaymentValueGenerator.transactionKey(),
|
||||||
|
cancelReason = cancelReason,
|
||||||
|
canceledAt = OffsetDateTime.now(),
|
||||||
|
cardDiscountAmount = cardDiscountAmount,
|
||||||
|
transferDiscountAmount = transferDiscountAmount,
|
||||||
|
easyPayDiscountAmount = easyPayDiscountAmount,
|
||||||
|
cancelAmount = cancelAmount,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,39 @@
|
|||||||
|
package com.sangdol.tosspaymock.business.domain.card
|
||||||
|
|
||||||
|
import com.sangdol.tosspaymock.business.domain.RandomCardValueGenerator
|
||||||
|
|
||||||
|
class Card(
|
||||||
|
val issuerCode: CardIssuerCode,
|
||||||
|
val acquirerCode: CardIssuerCode,
|
||||||
|
val number: String,
|
||||||
|
val installmentPlanMonths: Int,
|
||||||
|
val isInterestFree: Boolean = true,
|
||||||
|
val interestPayer: String? = null,
|
||||||
|
val approveNo: String,
|
||||||
|
val useCardPoint: Boolean,
|
||||||
|
val cardType: CardType,
|
||||||
|
val ownerType: CardOwnerType,
|
||||||
|
val acquireStatus: CardAcquireStatus,
|
||||||
|
val amount: Int,
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
val availableCardTypes = listOf(CardType.CREDIT, CardType.CHECK)
|
||||||
|
val availableCardOwnerTypes = CardOwnerType.entries - CardOwnerType.UNKNOWN
|
||||||
|
fun random(approvedAmount: Int): Card {
|
||||||
|
return Card(
|
||||||
|
issuerCode = CardIssuerCode.entries.random(),
|
||||||
|
acquirerCode = CardIssuerCode.entries.random(),
|
||||||
|
number = RandomCardValueGenerator.cardNumber(),
|
||||||
|
installmentPlanMonths = RandomCardValueGenerator.installmentPlanMonths(approvedAmount),
|
||||||
|
isInterestFree = true,
|
||||||
|
interestPayer = null,
|
||||||
|
approveNo = RandomCardValueGenerator.approvalNumber(),
|
||||||
|
useCardPoint = false,
|
||||||
|
cardType = availableCardTypes.random(),
|
||||||
|
ownerType = availableCardOwnerTypes.random(),
|
||||||
|
acquireStatus = CardAcquireStatus.COMPLETED,
|
||||||
|
amount = approvedAmount
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package com.sangdol.tosspaymock.business.domain.easypay
|
||||||
|
|
||||||
|
import com.sangdol.tosspaymock.business.domain.RandomEasypayValueGenerator
|
||||||
|
|
||||||
|
class Easypay(
|
||||||
|
val provider: EasypayProvider,
|
||||||
|
val amount: Int,
|
||||||
|
val discountAmount: Int
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
fun randomWithPrepaid(amount: Int): Easypay {
|
||||||
|
val point = RandomEasypayValueGenerator.point(amount)
|
||||||
|
|
||||||
|
return Easypay(
|
||||||
|
provider = EasypayProvider.entries.random(),
|
||||||
|
amount = (amount - point),
|
||||||
|
discountAmount = point
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
fun randomWithCard(amount: Int): Easypay {
|
||||||
|
val point = RandomEasypayValueGenerator.point(amount)
|
||||||
|
|
||||||
|
return Easypay(
|
||||||
|
provider = EasypayProvider.entries.random(),
|
||||||
|
amount = 0,
|
||||||
|
discountAmount = point
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,15 @@
|
|||||||
|
package com.sangdol.tosspaymock.business.domain.transfer
|
||||||
|
|
||||||
|
class BankTransfer(
|
||||||
|
val bankCode: BankCode,
|
||||||
|
val settlementStatus: SettlementStatus,
|
||||||
|
) {
|
||||||
|
companion object {
|
||||||
|
fun random(): BankTransfer {
|
||||||
|
return BankTransfer(
|
||||||
|
bankCode = BankCode.entries.random(),
|
||||||
|
settlementStatus = SettlementStatus.COMPLETED
|
||||||
|
)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user