From 86dac7e2b44ffcecd47c08616fd0fdbb47be3bcf Mon Sep 17 00:00:00 2001
From: Klaus <klaus@vividnext.co.kr>
Date: Fri, 8 Nov 2024 14:50:56 +0900
Subject: [PATCH] =?UTF-8?q?=EC=BD=98=ED=85=90=EC=B8=A0=20=EA=B5=AC?=
 =?UTF-8?q?=EB=A7=A4=20-=20=EC=86=8C=EC=9E=A5=EB=A7=8C=20=EA=B0=80?=
 =?UTF-8?q?=EB=8A=A5=ED=95=9C=20=EC=BD=98=ED=85=90=EC=B8=A0=EB=A5=BC=20?=
 =?UTF-8?q?=EB=8C=80=EC=97=AC=20=ED=95=98=EB=A0=A4=EB=8A=94=20=EA=B2=BD?=
 =?UTF-8?q?=EC=9A=B0=20=EC=95=88=EB=82=B4=EB=A9=94=EC=8B=9C=EC=A7=80=20?=
 =?UTF-8?q?=EC=B6=94=EA=B0=80?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .../vividnext/sodalive/content/order/OrderService.kt   | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt
index 4826816..d6c3e0e 100644
--- a/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt
+++ b/src/main/kotlin/kr/co/vividnext/sodalive/content/order/OrderService.kt
@@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.can.use.CanUsage
 import kr.co.vividnext.sodalive.common.SodaException
 import kr.co.vividnext.sodalive.content.AudioContent
 import kr.co.vividnext.sodalive.content.AudioContentRepository
+import kr.co.vividnext.sodalive.content.PurchaseOption
 import kr.co.vividnext.sodalive.content.comment.AudioContentCommentRepository
 import kr.co.vividnext.sodalive.content.like.AudioContentLikeRepository
 import kr.co.vividnext.sodalive.content.main.GetAudioContentMainItem
@@ -31,7 +32,7 @@ class OrderService(
     fun order(contentId: Long, orderType: OrderType, container: String, member: Member) {
         val content = audioContentRepository.findByIdAndActive(contentId)
             ?: throw SodaException("잘못된 콘텐츠 입니다\n다시 시도해 주세요.")
-        validateOrder(memberId = member.id!!, content = content)
+        validateOrder(memberId = member.id!!, content = content, orderType = orderType)
 
         val order = if (content.limited != null && content.remaining != null) {
             if (content.remaining!! <= 0) throw SodaException("해당 콘텐츠가 매진되었습니다.")
@@ -75,11 +76,16 @@ class OrderService(
         return order
     }
 
-    private fun validateOrder(memberId: Long, content: AudioContent) {
+    private fun validateOrder(memberId: Long, content: AudioContent, orderType: OrderType) {
         if (memberId == content.member!!.id!!) throw SodaException("자신이 올린 콘텐츠는 구매할 수 없습니다.")
+
         if (repository.isExistOrdered(memberId = memberId, contentId = content.id!!)) {
             throw SodaException("이미 구매한 콘텐츠 입니다.")
         }
+
+        if (content.purchaseOption == PurchaseOption.BUY_ONLY && orderType == OrderType.RENTAL) {
+            throw SodaException("소장만 가능한 콘텐츠 입니다.\n앱 업데이트 후 구매해 주세요.")
+        }
     }
 
     fun getAudioContentOrderList(