오디션 배역 등록/수정

- 오디션 배역 정보 추가
This commit is contained in:
Klaus 2024-12-28 03:29:11 +09:00
parent 6e6b27bb65
commit 8cfe9ade9a
6 changed files with 20 additions and 1 deletions

View File

@ -53,6 +53,7 @@ class AdminAuditionRoleQueryRepositoryImpl(
QGetAuditionRoleDetailResponse( QGetAuditionRoleDetailResponse(
auditionRole.name, auditionRole.name,
auditionRole.imagePath.prepend("/").prepend(cloudfrontHost), auditionRole.imagePath.prepend("/").prepend(cloudfrontHost),
auditionRole.information,
auditionRole.auditionScriptUrl auditionRole.auditionScriptUrl
) )
) )

View File

@ -25,7 +25,11 @@ class AdminAuditionRoleService(
@Transactional @Transactional
fun createAuditionRole(image: MultipartFile, requestString: String) { fun createAuditionRole(image: MultipartFile, requestString: String) {
val request = objectMapper.readValue(requestString, CreateAuditionRoleRequest::class.java) val request = objectMapper.readValue(requestString, CreateAuditionRoleRequest::class.java)
val auditionRole = AuditionRole(name = request.name, auditionScriptUrl = request.auditionScriptUrl) val auditionRole = AuditionRole(
name = request.name,
information = request.information,
auditionScriptUrl = request.auditionScriptUrl
)
val audition = auditionRepository.findByIdOrNull(id = request.auditionId) val audition = auditionRepository.findByIdOrNull(id = request.auditionId)
?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.") ?: throw SodaException("잘못된 요청입니다.\n다시 시도해 주세요.")
auditionRole.audition = audition auditionRole.audition = audition
@ -50,6 +54,10 @@ class AdminAuditionRoleService(
auditionRole.name = request.name auditionRole.name = request.name
} }
if (!request.information.isNullOrBlank() && request.information.length >= 10) {
auditionRole.information = request.information
}
if (!request.auditionScriptUrl.isNullOrBlank()) { if (!request.auditionScriptUrl.isNullOrBlank()) {
auditionRole.auditionScriptUrl = request.auditionScriptUrl auditionRole.auditionScriptUrl = request.auditionScriptUrl
} }

View File

@ -5,6 +5,7 @@ import kr.co.vividnext.sodalive.common.SodaException
data class CreateAuditionRoleRequest( data class CreateAuditionRoleRequest(
val auditionId: Long, val auditionId: Long,
val name: String, val name: String,
val information: String,
val auditionScriptUrl: String val auditionScriptUrl: String
) { ) {
init { init {
@ -19,5 +20,9 @@ data class CreateAuditionRoleRequest(
if (auditionScriptUrl.isBlank() || auditionScriptUrl.length < 10) { if (auditionScriptUrl.isBlank() || auditionScriptUrl.length < 10) {
throw SodaException("오디션 대본 URL을 입력하세요") throw SodaException("오디션 대본 URL을 입력하세요")
} }
if (information.isBlank() || information.length < 10) {
throw SodaException("오디션 캐릭터 정보는 최소 10글자 입니다")
}
} }
} }

View File

@ -5,5 +5,6 @@ import com.querydsl.core.annotations.QueryProjection
data class GetAuditionRoleDetailResponse @QueryProjection constructor( data class GetAuditionRoleDetailResponse @QueryProjection constructor(
val name: String, val name: String,
val imageUrl: String, val imageUrl: String,
val information: String,
val auditionScriptUrl: String val auditionScriptUrl: String
) )

View File

@ -6,6 +6,7 @@ import kr.co.vividnext.sodalive.common.SodaException
data class UpdateAuditionRoleRequest( data class UpdateAuditionRoleRequest(
val id: Long, val id: Long,
val name: String? = null, val name: String? = null,
val information: String? = null,
val auditionScriptUrl: String? = null, val auditionScriptUrl: String? = null,
val status: AuditionStatus? = null, val status: AuditionStatus? = null,
val isActive: Boolean? = null val isActive: Boolean? = null

View File

@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.audition package kr.co.vividnext.sodalive.audition
import kr.co.vividnext.sodalive.common.BaseEntity import kr.co.vividnext.sodalive.common.BaseEntity
import javax.persistence.Column
import javax.persistence.Entity import javax.persistence.Entity
import javax.persistence.EnumType import javax.persistence.EnumType
import javax.persistence.Enumerated import javax.persistence.Enumerated
@ -11,6 +12,8 @@ import javax.persistence.ManyToOne
@Entity @Entity
data class AuditionRole( data class AuditionRole(
var name: String, var name: String,
@Column(columnDefinition = "TEXT")
var information: String,
// 오디션 대본 URL // 오디션 대본 URL
var auditionScriptUrl: String? = null, var auditionScriptUrl: String? = null,
@Enumerated(value = EnumType.STRING) @Enumerated(value = EnumType.STRING)