generated from pricelees/issue-pr-template
[#44] 매장 기능 도입 #45
@ -131,7 +131,7 @@ class ThemeService(
|
||||
request.availableMinutes,
|
||||
request.expectedMinutesFrom,
|
||||
request.expectedMinutesTo,
|
||||
request.isOpen,
|
||||
request.isActive,
|
||||
).also {
|
||||
log.info { "[ThemeService.updateTheme] 테마 수정 완료: id=$id, request=${request}" }
|
||||
}
|
||||
|
||||
@ -23,7 +23,7 @@ class ThemeEntity(
|
||||
var expectedMinutesTo: Short,
|
||||
|
||||
@Column(columnDefinition = "TINYINT", length = 1)
|
||||
var isOpen: Boolean
|
||||
var isActive: Boolean
|
||||
) : AuditingBaseEntity(id) {
|
||||
|
||||
fun modifyIfNotNull(
|
||||
@ -37,7 +37,7 @@ class ThemeEntity(
|
||||
availableMinutes: Short?,
|
||||
expectedMinutesFrom: Short?,
|
||||
expectedMinutesTo: Short?,
|
||||
isOpen: Boolean?
|
||||
isActive: Boolean?
|
||||
) {
|
||||
name?.let { this.name = it }
|
||||
description?.let { this.description = it }
|
||||
@ -49,7 +49,7 @@ class ThemeEntity(
|
||||
availableMinutes?.let { this.availableMinutes = it }
|
||||
expectedMinutesFrom?.let { this.expectedMinutesFrom = it }
|
||||
expectedMinutesTo?.let { this.expectedMinutesTo = it }
|
||||
isOpen?.let { this.isOpen = it }
|
||||
isActive?.let { this.isActive = it }
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -5,8 +5,8 @@ import org.springframework.data.jpa.repository.Query
|
||||
|
||||
interface ThemeRepository : JpaRepository<ThemeEntity, Long> {
|
||||
|
||||
@Query("SELECT t FROM ThemeEntity t WHERE t.isOpen = true")
|
||||
fun findOpenedThemes(): List<ThemeEntity>
|
||||
@Query("SELECT t FROM ThemeEntity t WHERE t.isActive = true")
|
||||
fun findActiveThemes(): List<ThemeEntity>
|
||||
|
||||
fun existsByName(name: String): Boolean
|
||||
}
|
||||
@ -16,7 +16,7 @@ data class ThemeCreateRequest(
|
||||
val availableMinutes: Short,
|
||||
val expectedMinutesFrom: Short,
|
||||
val expectedMinutesTo: Short,
|
||||
val isOpen: Boolean
|
||||
val isActive: Boolean
|
||||
)
|
||||
|
||||
data class ThemeCreateResponseV2(
|
||||
@ -35,7 +35,7 @@ fun ThemeCreateRequest.toEntity(id: Long) = ThemeEntity(
|
||||
availableMinutes = this.availableMinutes,
|
||||
expectedMinutesFrom = this.expectedMinutesFrom,
|
||||
expectedMinutesTo = this.expectedMinutesTo,
|
||||
isOpen = this.isOpen
|
||||
isActive = this.isActive
|
||||
)
|
||||
|
||||
data class ThemeUpdateRequest(
|
||||
@ -49,7 +49,7 @@ data class ThemeUpdateRequest(
|
||||
val availableMinutes: Short? = null,
|
||||
val expectedMinutesFrom: Short? = null,
|
||||
val expectedMinutesTo: Short? = null,
|
||||
val isOpen: Boolean? = null,
|
||||
val isActive: Boolean? = null,
|
||||
) {
|
||||
fun isAllParamsNull(): Boolean {
|
||||
return name == null &&
|
||||
@ -62,7 +62,7 @@ data class ThemeUpdateRequest(
|
||||
availableMinutes == null &&
|
||||
expectedMinutesFrom == null &&
|
||||
expectedMinutesTo == null &&
|
||||
isOpen == null
|
||||
isActive == null
|
||||
}
|
||||
}
|
||||
|
||||
@ -71,7 +71,7 @@ data class AdminThemeSummaryResponse(
|
||||
val name: String,
|
||||
val difficulty: Difficulty,
|
||||
val price: Int,
|
||||
val isOpen: Boolean
|
||||
val isActive: Boolean
|
||||
)
|
||||
|
||||
fun ThemeEntity.toAdminThemeSummaryResponse() = AdminThemeSummaryResponse(
|
||||
@ -79,7 +79,7 @@ fun ThemeEntity.toAdminThemeSummaryResponse() = AdminThemeSummaryResponse(
|
||||
name = this.name,
|
||||
difficulty = this.difficulty,
|
||||
price = this.price,
|
||||
isOpen = this.isOpen
|
||||
isActive = this.isActive
|
||||
)
|
||||
|
||||
data class AdminThemeSummaryListResponse(
|
||||
@ -102,7 +102,7 @@ data class AdminThemeDetailResponse(
|
||||
val availableMinutes: Short,
|
||||
val expectedMinutesFrom: Short,
|
||||
val expectedMinutesTo: Short,
|
||||
val isOpen: Boolean,
|
||||
val isActive: Boolean,
|
||||
val createdAt: LocalDateTime,
|
||||
val createdBy: OperatorInfo,
|
||||
val updatedAt: LocalDateTime,
|
||||
@ -122,7 +122,7 @@ fun ThemeEntity.toAdminThemeDetailResponse(createdBy: OperatorInfo, updatedBy: O
|
||||
availableMinutes = this.availableMinutes,
|
||||
expectedMinutesFrom = this.expectedMinutesFrom,
|
||||
expectedMinutesTo = this.expectedMinutesTo,
|
||||
isOpen = this.isOpen,
|
||||
isActive = this.isActive,
|
||||
createdAt = this.createdAt,
|
||||
createdBy = createdBy,
|
||||
updatedAt = this.updatedAt,
|
||||
@ -114,7 +114,7 @@ create table if not exists theme (
|
||||
available_minutes smallint not null,
|
||||
expected_minutes_from smallint not null,
|
||||
expected_minutes_to smallint not null,
|
||||
is_open boolean not null,
|
||||
is_active boolean not null,
|
||||
created_at timestamp not null,
|
||||
created_by bigint not null,
|
||||
updated_at timestamp not null,
|
||||
|
||||
@ -168,7 +168,7 @@ object ThemeFixture {
|
||||
availableMinutes = 80,
|
||||
expectedMinutesFrom = 60,
|
||||
expectedMinutesTo = 70,
|
||||
isOpen = true
|
||||
isActive = true
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@ -353,8 +353,8 @@ class ThemeApiTest(
|
||||
context("관리자가 모든 테마를 조회한다.") {
|
||||
val endpoint = "/admin/themes"
|
||||
val requests = listOf(
|
||||
createRequest.copy(name = "open", isOpen = true),
|
||||
createRequest.copy(name = "close", isOpen = false)
|
||||
createRequest.copy(name = "open", isActive = true),
|
||||
createRequest.copy(name = "close", isActive = false)
|
||||
)
|
||||
|
||||
context("권한이 없으면 접근할 수 없다.") {
|
||||
@ -403,7 +403,7 @@ class ThemeApiTest(
|
||||
expect = {
|
||||
body("data.themes.size()", equalTo(requests.size))
|
||||
assertProperties(
|
||||
props = setOf("id", "name", "difficulty", "price", "isOpen"),
|
||||
props = setOf("id", "name", "difficulty", "price", "isActive"),
|
||||
propsNameIfList = "themes",
|
||||
)
|
||||
}
|
||||
@ -507,7 +507,7 @@ class ThemeApiTest(
|
||||
body("data.id", equalTo(createdTheme.id))
|
||||
assertProperties(
|
||||
props = setOf(
|
||||
"id", "name", "description", "thumbnailUrl", "difficulty", "price", "isOpen",
|
||||
"id", "name", "description", "thumbnailUrl", "difficulty", "price", "isActive",
|
||||
"minParticipants", "maxParticipants",
|
||||
"availableMinutes", "expectedMinutesFrom", "expectedMinutesTo",
|
||||
"createdAt", "createdBy", "updatedAt", "updatedBy"
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user