feat(gift): 선물 가격과 신청번호 저장소를 추가한다

This commit is contained in:
2026-09-30 13:35:14 +09:00
parent 3049184ea2
commit 21d6e755e9
4 changed files with 73 additions and 0 deletions
@@ -0,0 +1,20 @@
package kr.co.vividnext.sodalive.v2.gift.adapter.out.persistence
import kr.co.vividnext.sodalive.common.BaseEntity
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.Table
import javax.persistence.UniqueConstraint
@Entity
@Table(
name = "gift_application_no_sequence",
uniqueConstraints = [UniqueConstraint(name = "uk_gift_application_no_sequence_date", columnNames = ["sequence_date"])]
)
class GiftApplicationNoSequence(
@Column(name = "sequence_date", nullable = false, length = 8)
val sequenceDate: String,
@Column(name = "last_sequence", nullable = false)
var lastSequence: Int
) : BaseEntity()
@@ -0,0 +1,15 @@
package kr.co.vividnext.sodalive.v2.gift.adapter.out.persistence
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.data.jpa.repository.Lock
import org.springframework.data.jpa.repository.Query
import org.springframework.data.repository.query.Param
import javax.persistence.LockModeType
interface GiftApplicationNoSequenceRepository : JpaRepository<GiftApplicationNoSequence, Long> {
fun findBySequenceDate(sequenceDate: String): GiftApplicationNoSequence?
@Lock(LockModeType.PESSIMISTIC_WRITE)
@Query("select s from GiftApplicationNoSequence s where s.sequenceDate = :sequenceDate")
fun findBySequenceDateForUpdate(@Param("sequenceDate") sequenceDate: String): GiftApplicationNoSequence?
}
@@ -0,0 +1,30 @@
package kr.co.vividnext.sodalive.v2.gift.adapter.out.persistence
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.v2.gift.domain.GiftSize
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.EnumType
import javax.persistence.Enumerated
import javax.persistence.Table
import javax.persistence.UniqueConstraint
@Entity
@Table(
name = "gift_size_price",
uniqueConstraints = [UniqueConstraint(name = "uk_gift_size_price_size_code", columnNames = ["size_code"])]
)
class GiftSizePrice(
@Enumerated(EnumType.STRING)
@Column(name = "size_code", nullable = false, length = 20)
val sizeCode: GiftSize,
@Column(name = "base_price_can", nullable = false)
var basePriceCan: Int,
@Column(name = "sale_price_can", nullable = false)
var salePriceCan: Int,
@Column(name = "is_active", nullable = false)
var isActive: Boolean = true
) : BaseEntity()
@@ -0,0 +1,8 @@
package kr.co.vividnext.sodalive.v2.gift.adapter.out.persistence
import kr.co.vividnext.sodalive.v2.gift.domain.GiftSize
import org.springframework.data.jpa.repository.JpaRepository
interface GiftSizePriceRepository : JpaRepository<GiftSizePrice, Long> {
fun findBySizeCode(sizeCode: GiftSize): GiftSizePrice?
}