From 06549e8ac166baf8721ce915749789f3e627e52f Mon Sep 17 00:00:00 2001 From: pricelees Date: Mon, 15 Sep 2025 11:54:48 +0900 Subject: [PATCH] =?UTF-8?q?refactor:=20Theme=20=EC=8A=A4=ED=82=A4=EB=A7=88?= =?UTF-8?q?=EC=9D=98=20isOpen=20->=20isActive=20=EC=9D=B4=EB=A6=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../roomescape/theme/business/ThemeService.kt | 2 +- .../infrastructure/persistence/ThemeEntity.kt | 6 +++--- .../persistence/ThemeRepository.kt | 4 ++-- .../theme/web/{ThemeDto.kt => AdminThemeDto.kt} | 16 ++++++++-------- src/main/resources/schema/schema-h2.sql | 2 +- src/test/kotlin/roomescape/supports/Fixtures.kt | 2 +- src/test/kotlin/roomescape/theme/ThemeApiTest.kt | 8 ++++---- 7 files changed, 20 insertions(+), 20 deletions(-) rename src/main/kotlin/roomescape/theme/web/{ThemeDto.kt => AdminThemeDto.kt} (95%) diff --git a/src/main/kotlin/roomescape/theme/business/ThemeService.kt b/src/main/kotlin/roomescape/theme/business/ThemeService.kt index a39572ae..17f38aac 100644 --- a/src/main/kotlin/roomescape/theme/business/ThemeService.kt +++ b/src/main/kotlin/roomescape/theme/business/ThemeService.kt @@ -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}" } } diff --git a/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeEntity.kt b/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeEntity.kt index df67be94..989b9a64 100644 --- a/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeEntity.kt +++ b/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeEntity.kt @@ -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 } } } diff --git a/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeRepository.kt b/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeRepository.kt index 1773826b..8e55104b 100644 --- a/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeRepository.kt +++ b/src/main/kotlin/roomescape/theme/infrastructure/persistence/ThemeRepository.kt @@ -5,8 +5,8 @@ import org.springframework.data.jpa.repository.Query interface ThemeRepository : JpaRepository { - @Query("SELECT t FROM ThemeEntity t WHERE t.isOpen = true") - fun findOpenedThemes(): List + @Query("SELECT t FROM ThemeEntity t WHERE t.isActive = true") + fun findActiveThemes(): List fun existsByName(name: String): Boolean } \ No newline at end of file diff --git a/src/main/kotlin/roomescape/theme/web/ThemeDto.kt b/src/main/kotlin/roomescape/theme/web/AdminThemeDto.kt similarity index 95% rename from src/main/kotlin/roomescape/theme/web/ThemeDto.kt rename to src/main/kotlin/roomescape/theme/web/AdminThemeDto.kt index 814f1076..e37070ee 100644 --- a/src/main/kotlin/roomescape/theme/web/ThemeDto.kt +++ b/src/main/kotlin/roomescape/theme/web/AdminThemeDto.kt @@ -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, diff --git a/src/main/resources/schema/schema-h2.sql b/src/main/resources/schema/schema-h2.sql index d4b6fe73..3a3c1b45 100644 --- a/src/main/resources/schema/schema-h2.sql +++ b/src/main/resources/schema/schema-h2.sql @@ -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, diff --git a/src/test/kotlin/roomescape/supports/Fixtures.kt b/src/test/kotlin/roomescape/supports/Fixtures.kt index 683900c0..d793a0bd 100644 --- a/src/test/kotlin/roomescape/supports/Fixtures.kt +++ b/src/test/kotlin/roomescape/supports/Fixtures.kt @@ -168,7 +168,7 @@ object ThemeFixture { availableMinutes = 80, expectedMinutesFrom = 60, expectedMinutesTo = 70, - isOpen = true + isActive = true ) } diff --git a/src/test/kotlin/roomescape/theme/ThemeApiTest.kt b/src/test/kotlin/roomescape/theme/ThemeApiTest.kt index 9e6e1645..e07aa933 100644 --- a/src/test/kotlin/roomescape/theme/ThemeApiTest.kt +++ b/src/test/kotlin/roomescape/theme/ThemeApiTest.kt @@ -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"