diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3f37259a..c096b20f 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -91,6 +91,11 @@
android:exported="false"
android:screenOrientation="portrait" />
+
+
\ No newline at end of file
diff --git a/domain/src/main/kotlin/co/orange/domain/entity/response/SellDetailModel.kt b/domain/src/main/kotlin/co/orange/domain/entity/response/SellDetailModel.kt
new file mode 100644
index 00000000..a4cce85f
--- /dev/null
+++ b/domain/src/main/kotlin/co/orange/domain/entity/response/SellDetailModel.kt
@@ -0,0 +1,18 @@
+package co.orange.domain.entity.response
+
+import co.orange.domain.enums.ItemStatus
+import co.orange.domain.enums.OrderStatus
+
+data class SellDetailModel(
+ val itemId: String,
+ val itemStatus: ItemStatus,
+ val productName: String,
+ val imgUrl: String,
+ val originPrice: Int,
+ val salePrice: Int,
+ val orderId: String,
+ val orderStatus: OrderStatus,
+ val buyerNickname: String,
+ val addressInfo: List,
+ val paymentInfo: List,
+)
diff --git a/domain/src/main/kotlin/co/orange/domain/entity/response/SellItemModel.kt b/domain/src/main/kotlin/co/orange/domain/entity/response/SellProductModel.kt
similarity index 83%
rename from domain/src/main/kotlin/co/orange/domain/entity/response/SellItemModel.kt
rename to domain/src/main/kotlin/co/orange/domain/entity/response/SellProductModel.kt
index dcf2a1a1..16ce6a39 100644
--- a/domain/src/main/kotlin/co/orange/domain/entity/response/SellItemModel.kt
+++ b/domain/src/main/kotlin/co/orange/domain/entity/response/SellProductModel.kt
@@ -1,6 +1,6 @@
package co.orange.domain.entity.response
-data class SellItemModel(
+data class SellProductModel(
val productId: Long,
val productName: String,
val originPrice: Int,
diff --git a/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt b/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt
new file mode 100644
index 00000000..bb563620
--- /dev/null
+++ b/domain/src/main/kotlin/co/orange/domain/enums/ItemStatus.kt
@@ -0,0 +1,8 @@
+package co.orange.domain.enums
+
+enum class ItemStatus {
+ ON_SALE,
+ IN_TRANSACTION,
+ CLOSED,
+ EXPIRED,
+}
diff --git a/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmActivity.kt b/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmActivity.kt
index 8b7bde5d..70b375be 100644
--- a/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmActivity.kt
+++ b/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmActivity.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.content.Intent
import android.os.Bundle
import androidx.activity.viewModels
-import co.orange.domain.entity.response.SellItemModel
+import co.orange.domain.entity.response.SellProductModel
import co.orange.presentation.sell.push.SellPushActivity
import coil.load
import dagger.hilt.android.AndroidEntryPoint
@@ -59,7 +59,7 @@ class SellConfirmActivity :
viewModel.productId = intent.getLongExtra(EXTRA_PRODUCT_ID, -1)
}
- private fun setIntentUi(item: SellItemModel) {
+ private fun setIntentUi(item: SellProductModel) {
with(binding) {
tvSellInfoName.text = item.productName
tvSellInfoOriginPrice.text = item.originPrice.setNumberForm()
diff --git a/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmViewModel.kt b/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmViewModel.kt
index f058fe8f..2f4b4b3b 100644
--- a/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmViewModel.kt
+++ b/presentation/src/main/java/co/orange/presentation/sell/confirm/SellConfirmViewModel.kt
@@ -1,7 +1,7 @@
package co.orange.presentation.sell.confirm
import androidx.lifecycle.ViewModel
-import co.orange.domain.entity.response.SellItemModel
+import co.orange.domain.entity.response.SellProductModel
import dagger.hilt.android.lifecycle.HiltViewModel
import javax.inject.Inject
@@ -14,7 +14,7 @@ class SellConfirmViewModel
var productId: Long = -1
var mockSellInfo =
- SellItemModel(
+ SellProductModel(
1102303002,
"딴지 키링 세트",
9000,
diff --git a/presentation/src/main/java/co/orange/presentation/sell/finished/SellFinishedActivity.kt b/presentation/src/main/java/co/orange/presentation/sell/finished/SellFinishedActivity.kt
index 4397048c..7ad652d2 100644
--- a/presentation/src/main/java/co/orange/presentation/sell/finished/SellFinishedActivity.kt
+++ b/presentation/src/main/java/co/orange/presentation/sell/finished/SellFinishedActivity.kt
@@ -6,6 +6,7 @@ import android.os.Bundle
import androidx.activity.viewModels
import co.orange.domain.entity.response.SellInfoModel
import co.orange.presentation.main.MainActivity
+import co.orange.presentation.sell.info.SellInfoActivity
import coil.load
import dagger.hilt.android.AndroidEntryPoint
import kr.genti.core.base.BaseActivity
@@ -41,7 +42,9 @@ class SellFinishedActivity :
private fun initDetailBtnListener() {
binding.btnProductDetail.setOnSingleClickListener {
- // TODO
+ SellInfoActivity.createIntent(this, viewModel.itemId).apply {
+ startActivity(this)
+ }
}
}
diff --git a/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoActivity.kt b/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoActivity.kt
new file mode 100644
index 00000000..6ec732b0
--- /dev/null
+++ b/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoActivity.kt
@@ -0,0 +1,79 @@
+package co.orange.presentation.sell.info
+
+import android.content.Context
+import android.content.Intent
+import android.os.Bundle
+import androidx.activity.viewModels
+import co.orange.domain.entity.response.SellDetailModel
+import coil.load
+import dagger.hilt.android.AndroidEntryPoint
+import kr.genti.core.base.BaseActivity
+import kr.genti.core.extension.breakLines
+import kr.genti.core.extension.setNumberForm
+import kr.genti.core.extension.setOnSingleClickListener
+import kr.genti.presentation.R
+import kr.genti.presentation.databinding.ActivitySellInfoBinding
+
+@AndroidEntryPoint
+class SellInfoActivity :
+ BaseActivity(R.layout.activity_sell_info) {
+ private val viewModel by viewModels()
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+
+ initExitBtnListener()
+ initFixPurchaseBtnListener()
+ getIntentInfo()
+ setIntentUi(viewModel.mockSellInfo)
+ }
+
+ private fun initExitBtnListener() {
+ binding.btnExit.setOnSingleClickListener { finish() }
+ }
+
+ private fun initFixPurchaseBtnListener() {
+ // TODO
+ binding.btnFixSell.setOnSingleClickListener { }
+ }
+
+ private fun getIntentInfo() {
+ viewModel.productId = intent.getLongExtra(EXTRA_PRODUCT_ID, -1)
+ }
+
+ private fun setIntentUi(item: SellDetailModel) {
+ with(binding) {
+ tvInfoTransaction.text = getString(R.string.transaction_id, item.orderId).breakLines()
+ ivInfoProduct.load(item.imgUrl)
+ tvInfoProductName.text = item.productName
+ tvInfoProductPrice.text = item.originPrice.setNumberForm()
+ tvInfoBuyerNickname.text = item.buyerNickname
+ tvInfoDeliveryName.text = item.addressInfo[0].recipient
+ tvInfoDeliveryAddress.text =
+ getString(
+ R.string.address_format,
+ item.addressInfo[0].zipCode,
+ item.addressInfo[0].address,
+ ).breakLines()
+ tvInfoDeliveryPhone.text = item.addressInfo[0].phone
+ tvInfoTransactionMethod.text = item.paymentInfo[0].method
+ tvInfoTransactionDate.text = item.paymentInfo[0].completedAt
+ tvInfoPayKakao.text = item.originPrice.setNumberForm()
+ tvInfoPayReal.text = item.salePrice.setNumberForm()
+ tvInfoPayTotal.text = item.salePrice.setNumberForm()
+ }
+ }
+
+ companion object {
+ private const val EXTRA_PRODUCT_ID = "EXTRA_PRODUCT_ID"
+
+ @JvmStatic
+ fun createIntent(
+ context: Context,
+ productId: Long,
+ ): Intent =
+ Intent(context, SellInfoActivity::class.java).apply {
+ putExtra(EXTRA_PRODUCT_ID, productId)
+ }
+ }
+}
diff --git a/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoViewModel.kt b/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoViewModel.kt
new file mode 100644
index 00000000..5df78515
--- /dev/null
+++ b/presentation/src/main/java/co/orange/presentation/sell/info/SellInfoViewModel.kt
@@ -0,0 +1,46 @@
+package co.orange.presentation.sell.info
+
+import androidx.lifecycle.ViewModel
+import co.orange.domain.entity.response.AddressInfoModel
+import co.orange.domain.entity.response.PaymentInfoModel
+import co.orange.domain.entity.response.SellDetailModel
+import co.orange.domain.enums.ItemStatus
+import co.orange.domain.enums.OrderStatus
+import dagger.hilt.android.lifecycle.HiltViewModel
+import javax.inject.Inject
+
+@HiltViewModel
+class SellInfoViewModel
+ @Inject
+ constructor(
+ // private val feedRepository: FeedRepository,
+ ) : ViewModel() {
+ var productId: Long = -1
+
+ val mockSellInfo =
+ SellDetailModel(
+ "1",
+ ItemStatus.ON_SALE,
+ "상품이름은 한줄로만 보여줄거에야야야야야야",
+ "https://github.com/Marchbreeze/Marchbreeze/assets/97405341/cd2c0454-92b4-41e7-ae2f-319f83e2426f",
+ 24000,
+ 21000,
+ "123e4567-e89b-12d3-a456-426614174000",
+ OrderStatus.ORDER_PLACED,
+ "등둔",
+ listOf(
+ AddressInfoModel(
+ "김상호",
+ "04567",
+ "서울특벌시 성동구 성수이로 137 107동 903호",
+ "010-3259-0327",
+ ),
+ ),
+ listOf(
+ PaymentInfoModel(
+ "NAVERPAY",
+ "2024.06.06",
+ ),
+ ),
+ )
+ }
diff --git a/presentation/src/main/res/drawable/ic_tooltip_bottom.xml b/presentation/src/main/res/drawable/ic_tooltip_bottom.xml
new file mode 100644
index 00000000..d79f74b6
--- /dev/null
+++ b/presentation/src/main/res/drawable/ic_tooltip_bottom.xml
@@ -0,0 +1,9 @@
+
+
+
diff --git a/presentation/src/main/res/drawable/shape_red_fill_5_rect.xml b/presentation/src/main/res/drawable/shape_red_fill_5_rect.xml
new file mode 100644
index 00000000..21c3e9eb
--- /dev/null
+++ b/presentation/src/main/res/drawable/shape_red_fill_5_rect.xml
@@ -0,0 +1,6 @@
+
+
+
+
+
\ No newline at end of file
diff --git a/presentation/src/main/res/layout/activity_sell_info.xml b/presentation/src/main/res/layout/activity_sell_info.xml
new file mode 100644
index 00000000..8b82e8e0
--- /dev/null
+++ b/presentation/src/main/res/layout/activity_sell_info.xml
@@ -0,0 +1,457 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/presentation/src/main/res/values/strings.xml b/presentation/src/main/res/values/strings.xml
index 9f751ff8..f111c073 100644
--- a/presentation/src/main/res/values/strings.xml
+++ b/presentation/src/main/res/values/strings.xml
@@ -128,5 +128,13 @@
주문 확인 후 거래가 진행됩니다. 근데 여기서 뭔가 설명문을 좀 적어야 할 것 같은데?
상품 등록 확인
상품 추가 등록
+ 판매 상세
+ 입금 완료
+ 구매자 정보
+ 판매 정보
+ 카카오톡 선물하기 가격
+ 판매가
+ 판매 확정하기
+ 판매를 확정하고, 배송정보를 입력하세요
\ No newline at end of file