오디션 엔티티

- status(모집상태) 추가
- 리스트 api : 응답값에 status 추가, 활성화 데이터만 조회
- 수정 api : status 수정 기능 추가
This commit is contained in:
Klaus 2024-12-27 01:56:45 +09:00
parent 86450533cf
commit 22c302efa0
6 changed files with 31 additions and 3 deletions

View File

@ -41,12 +41,13 @@ class AdminAuditionQueryRepositoryImpl(
.otherwise(""),
audition.imagePath.prepend("/").prepend(coverImageHost),
audition.isAdult,
audition.isActive,
audition.information,
audition.status,
audition.originalWorkUrl.coalesce("")
)
)
.from(audition)
.where(audition.isActive.isTrue)
.offset(offset)
.limit(limit)
.orderBy(audition.isActive.desc(), audition.id.desc())

View File

@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.admin.audition
import com.fasterxml.jackson.databind.ObjectMapper
import kr.co.vividnext.sodalive.audition.AuditionStatus
import kr.co.vividnext.sodalive.aws.s3.S3Uploader
import kr.co.vividnext.sodalive.common.SodaException
import kr.co.vividnext.sodalive.utils.generateFileName
@ -54,6 +55,17 @@ class AdminAuditionService(
audition.isAdult = request.isAdult
}
if (request.status != null) {
if (
(audition.status == AuditionStatus.COMPLETED || audition.status == AuditionStatus.IN_PROGRESS) &&
request.status == AuditionStatus.NOT_STARTED
) {
throw SodaException("모집전 상태로 변경할 수 없습니다.")
}
audition.status = request.status
}
if (request.endDateString != null) {
val dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")
val endDate = LocalDateTime.parse(request.endDateString, dateTimeFormatter)

View File

@ -1,6 +1,7 @@
package kr.co.vividnext.sodalive.admin.audition
import com.querydsl.core.annotations.QueryProjection
import kr.co.vividnext.sodalive.audition.AuditionStatus
data class GetAuditionListResponse(
val totalCount: Int,
@ -13,7 +14,7 @@ data class GetAuditionListItem @QueryProjection constructor(
val endDate: String,
val imageUrl: String,
val isAdult: Boolean,
val isActive: Boolean,
val information: String,
val status: AuditionStatus,
val originalWorkUrl: String
)

View File

@ -1,11 +1,14 @@
package kr.co.vividnext.sodalive.admin.audition
import kr.co.vividnext.sodalive.audition.AuditionStatus
data class UpdateAuditionRequest(
val id: Long,
val title: String? = null,
val information: String? = null,
val isAdult: Boolean? = null,
val endDateString: String? = null,
val status: AuditionStatus? = null,
val originalWorkUrl: String? = null,
val isActive: Boolean? = null
)

View File

@ -4,6 +4,8 @@ import kr.co.vividnext.sodalive.common.BaseEntity
import java.time.LocalDateTime
import javax.persistence.Column
import javax.persistence.Entity
import javax.persistence.EnumType
import javax.persistence.Enumerated
@Entity
data class Audition(
@ -13,7 +15,9 @@ data class Audition(
var isAdult: Boolean = false,
var endDate: LocalDateTime? = null,
// 원작 URL
var originalWorkUrl: String? = null
var originalWorkUrl: String? = null,
@Enumerated(value = EnumType.STRING)
var status: AuditionStatus = AuditionStatus.NOT_STARTED
) : BaseEntity() {
var isActive: Boolean = true
var imagePath: String? = null

View File

@ -0,0 +1,7 @@
package kr.co.vividnext.sodalive.audition
enum class AuditionStatus {
NOT_STARTED,
IN_PROGRESS,
COMPLETED
}