관리자 큐레이션 등록/수정

- 탭과 시리즈 여부 추가
This commit is contained in:
Klaus 2025-01-23 19:33:17 +09:00
parent 49a5e47f9d
commit e9e538168c
3 changed files with 43 additions and 10 deletions

View File

@ -1,5 +1,6 @@
package kr.co.vividnext.sodalive.admin.content.curation
import kr.co.vividnext.sodalive.admin.content.tab.AdminContentMainTabRepository
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.content.main.curation.AudioContentCuration
import org.springframework.data.repository.findByIdOrNull
@ -8,17 +9,23 @@ import org.springframework.transaction.annotation.Transactional
@Service
class AdminContentCurationService(
private val repository: AdminContentCurationRepository
private val repository: AdminContentCurationRepository,
private val contentMainTabRepository: AdminContentMainTabRepository
) {
@Transactional
fun createContentCuration(request: CreateContentCurationRequest) {
repository.save(
AudioContentCuration(
title = request.title,
description = request.description,
isAdult = request.isAdult
)
val tab = contentMainTabRepository.findByIdOrNull(request.tabId)
?: throw SodaException("잘못된 요청입니다.")
val curation = AudioContentCuration(
title = request.title,
description = request.description,
isAdult = request.isAdult,
isSeries = request.isSeries
)
curation.tab = tab
repository.save(curation)
}
@Transactional
@ -41,6 +48,18 @@ class AdminContentCurationService(
if (request.isActive != null) {
audioContentCuration.isActive = request.isActive
}
if (request.isSeries != null) {
audioContentCuration.isSeries = request.isSeries
}
if (request.tabId != null) {
val tab = contentMainTabRepository.findByIdOrNull(request.tabId)
if (tab != null) {
audioContentCuration.tab = tab
}
}
}
@Transactional

View File

@ -1,16 +1,20 @@
package kr.co.vividnext.sodalive.admin.content.curation
data class CreateContentCurationRequest(
val tabId: Long,
val title: String,
val description: String,
val isAdult: Boolean
val isAdult: Boolean,
val isSeries: Boolean
)
data class UpdateContentCurationRequest(
val id: Long,
val tabId: Long?,
val title: String?,
val description: String?,
val isAdult: Boolean?,
val isSeries: Boolean?,
val isActive: Boolean?
)

View File

@ -1,8 +1,12 @@
package kr.co.vividnext.sodalive.content.main.curation
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.content.main.tab.AudioContentMainTab
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.OneToOne
import javax.persistence.Table
@Entity
@ -17,5 +21,11 @@ data class AudioContentCuration(
@Column(nullable = false)
var isActive: Boolean = true,
@Column(nullable = false)
var orders: Int = 1
) : BaseEntity()
var orders: Int = 1,
@Column(nullable = false)
var isSeries: Boolean = false
) : BaseEntity() {
@OneToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "tab_id", nullable = true)
var tab: AudioContentMainTab? = null
}