From 466b73e5b24a23e41ad61334a100033b8bf51a6e Mon Sep 17 00:00:00 2001 From: pricelees Date: Wed, 1 Oct 2025 10:32:02 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B2=B0=EC=A0=9C=20=EC=B7=A8=EC=86=8C?= =?UTF-8?q?=EC=8B=9C=20=ED=95=84=EC=9A=94=ED=95=9C=20=ED=95=A0=EC=9D=B8?= =?UTF-8?q?=EA=B8=88=EC=95=A1,=20=EA=B2=B0=EC=A0=9C=EA=B8=88=EC=95=A1?= =?UTF-8?q?=EC=9D=84=20=EB=B6=88=EB=9F=AC=EC=98=A4=EA=B8=B0=20=EC=9C=84?= =?UTF-8?q?=ED=95=9C=20=ED=85=8C=EC=9D=B4=EB=B8=94=20=EB=B0=8F=20Entity=20?= =?UTF-8?q?=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../persistence/OrderAmountEntity.kt | 24 +++++++++++++++++++ .../persistence/OrderAmountRepository.kt | 8 +++++++ .../src/main/resources/schema/schema-h2.sql | 10 ++++++++ 3 files changed, 42 insertions(+) create mode 100644 tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountEntity.kt create mode 100644 tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountRepository.kt create mode 100644 tosspay-mock/src/main/resources/schema/schema-h2.sql diff --git a/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountEntity.kt b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountEntity.kt new file mode 100644 index 00000000..a98031a2 --- /dev/null +++ b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountEntity.kt @@ -0,0 +1,24 @@ +package com.sangdol.tosspaymock.infrastructure.persistence + +import com.sangdol.common.persistence.PersistableBaseEntity +import jakarta.persistence.Column +import jakarta.persistence.Entity +import jakarta.persistence.Table + +@Entity +@Table(name = "order_amount") +class OrderAmountEntity( + id: Long, + + @Column(unique = true) + val paymentKey: String, + + val approvedAmount: Int, + val easypayDiscountAmount: Int, + val cardDiscountAmount: Int, + val transferDiscountAmount: Int +) : PersistableBaseEntity(id) { + fun totalAmount(): Int { + return (approvedAmount + easypayDiscountAmount + cardDiscountAmount + transferDiscountAmount) + } +} diff --git a/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountRepository.kt b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountRepository.kt new file mode 100644 index 00000000..77825cf2 --- /dev/null +++ b/tosspay-mock/src/main/kotlin/com/sangdol/tosspaymock/infrastructure/persistence/OrderAmountRepository.kt @@ -0,0 +1,8 @@ +package com.sangdol.tosspaymock.infrastructure.persistence + +import org.springframework.data.jpa.repository.JpaRepository + +interface OrderAmountRepository : JpaRepository { + + fun findByPaymentKey(paymentKey: String): OrderAmountEntity? +} diff --git a/tosspay-mock/src/main/resources/schema/schema-h2.sql b/tosspay-mock/src/main/resources/schema/schema-h2.sql new file mode 100644 index 00000000..57277e11 --- /dev/null +++ b/tosspay-mock/src/main/resources/schema/schema-h2.sql @@ -0,0 +1,10 @@ +create table if not exists order_amount ( + id bigint primary key, + payment_key varchar(255) not null, + approved_amount integer not null, + easypay_discount_amount integer not null, + card_discount_amount integer not null, + transfer_discount_amount integer not null, + + constraint uk_order_amount__payment_key unique (payment_key) +);