diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt index aa66d0ce..ac810c11 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt @@ -24,8 +24,8 @@ import kr.co.vividnext.sodalive.live.room.QLiveRoom.liveRoom import kr.co.vividnext.sodalive.member.QMember import kr.co.vividnext.sodalive.member.QMember.member import kr.co.vividnext.sodalive.member.block.QBlockMember +import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendationScoreSpec -import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedSectionType import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeAiCharacterRecommendationRecord import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeBannerRecommendationRecord @@ -197,7 +197,7 @@ class DefaultHomeRecommendationQueryRepository( RecentlyActiveCreatorRecord( creatorNickname = row[0] as String, creatorProfileImage = row[1] as String?, - activityType = RecommendedActivityType.valueOf(row[2] as String), + activityType = CreatorActivityType.valueOf(row[2] as String), activityAt = toLocalDateTime(row[3]), targetId = (row[4] as Number?)?.toLong() ) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryService.kt index 6b8b299e..bb8527da 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryService.kt @@ -1,6 +1,6 @@ package kr.co.vividnext.sodalive.v2.recommendation.application -import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedActivityType +import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedSectionType import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeAiCharacterRecommendationRecord import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeBannerRecommendationRecord @@ -150,11 +150,11 @@ class HomeRecommendationQueryService( return selectedGroups.take(genreLimit) } - fun resolveAudioContentActivityType(theme: String): RecommendedActivityType { + fun resolveAudioContentActivityType(theme: String): CreatorActivityType { return if (theme == LIVE_REPLAY_THEME) { - RecommendedActivityType.LIVE_REPLAY + CreatorActivityType.LIVE_REPLAY } else { - RecommendedActivityType.AUDIO + CreatorActivityType.AUDIO } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/domain/RecommendedActivityType.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/domain/RecommendedActivityType.kt deleted file mode 100644 index c7e76172..00000000 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/domain/RecommendedActivityType.kt +++ /dev/null @@ -1,8 +0,0 @@ -package kr.co.vividnext.sodalive.v2.recommendation.domain - -enum class RecommendedActivityType(val code: String) { - LIVE("LIVE"), - AUDIO("AUDIO"), - COMMUNITY("COMMUNITY"), - LIVE_REPLAY("LIVE_REPLAY") -} diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/port/out/HomeRecommendationQueryPort.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/port/out/HomeRecommendationQueryPort.kt index c9d6fe62..990b96f1 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/port/out/HomeRecommendationQueryPort.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommendation/port/out/HomeRecommendationQueryPort.kt @@ -1,6 +1,6 @@ package kr.co.vividnext.sodalive.v2.recommendation.port.out -import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedActivityType +import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import java.time.LocalDateTime interface HomeRecommendationQueryPort { @@ -97,7 +97,7 @@ data class HomeBannerRecommendationRecord( data class RecentlyActiveCreatorRecord( val creatorNickname: String, val creatorProfileImage: String?, - val activityType: RecommendedActivityType, + val activityType: CreatorActivityType, val activityAt: LocalDateTime, val targetId: Long? ) diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepositoryTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepositoryTest.kt index b5b16d0c..03b1098d 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepositoryTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/adapter/out/persistence/DefaultHomeRecommendationQueryRepositoryTest.kt @@ -35,8 +35,8 @@ import kr.co.vividnext.sodalive.member.MemberKind import kr.co.vividnext.sodalive.member.MemberRole import kr.co.vividnext.sodalive.member.block.BlockMember import kr.co.vividnext.sodalive.member.following.CreatorFollowing +import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendationScorePolicy -import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedSectionType import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeAiCharacterRecommendationRecord import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeCheerCreatorRecommendationRecord @@ -362,14 +362,14 @@ class DefaultHomeRecommendationQueryRepositoryTest @Autowired constructor( listOf(liveCreator.nickname, audioCreator.nickname, replayCreator.nickname, communityCreator.nickname), creators.map { it.creatorNickname } ) - assertEquals(RecommendedActivityType.LIVE, byCreatorNickname[liveCreator.nickname]!!.activityType) + assertEquals(CreatorActivityType.LIVE, byCreatorNickname[liveCreator.nickname]!!.activityType) assertEquals(null, byCreatorNickname[liveCreator.nickname]!!.targetId) assertEquals(baseAt, byCreatorNickname[liveCreator.nickname]!!.activityAt) - assertEquals(RecommendedActivityType.AUDIO, byCreatorNickname[audioCreator.nickname]!!.activityType) + assertEquals(CreatorActivityType.AUDIO, byCreatorNickname[audioCreator.nickname]!!.activityType) assertEquals(audio.id, byCreatorNickname[audioCreator.nickname]!!.targetId) - assertEquals(RecommendedActivityType.LIVE_REPLAY, byCreatorNickname[replayCreator.nickname]!!.activityType) + assertEquals(CreatorActivityType.LIVE_REPLAY, byCreatorNickname[replayCreator.nickname]!!.activityType) assertEquals(replay.id, byCreatorNickname[replayCreator.nickname]!!.targetId) - assertEquals(RecommendedActivityType.COMMUNITY, byCreatorNickname[communityCreator.nickname]!!.activityType) + assertEquals(CreatorActivityType.COMMUNITY, byCreatorNickname[communityCreator.nickname]!!.activityType) assertEquals(communityCreator.id, byCreatorNickname[communityCreator.nickname]!!.targetId) } @@ -405,10 +405,10 @@ class DefaultHomeRecommendationQueryRepositoryTest @Autowired constructor( assertEquals(null, visibleCreators[1].targetId) assertEquals(adultAudio.id, visibleCreators[2].targetId) assertEquals(adultCommunityCreator.id, visibleCreators[3].targetId) - assertEquals(RecommendedActivityType.LIVE, visibleCreators[0].activityType) - assertEquals(RecommendedActivityType.LIVE, visibleCreators[1].activityType) - assertEquals(RecommendedActivityType.AUDIO, visibleCreators[2].activityType) - assertEquals(RecommendedActivityType.COMMUNITY, visibleCreators[3].activityType) + assertEquals(CreatorActivityType.LIVE, visibleCreators[0].activityType) + assertEquals(CreatorActivityType.LIVE, visibleCreators[1].activityType) + assertEquals(CreatorActivityType.AUDIO, visibleCreators[2].activityType) + assertEquals(CreatorActivityType.COMMUNITY, visibleCreators[3].activityType) } @Test @@ -430,7 +430,7 @@ class DefaultHomeRecommendationQueryRepositoryTest @Autowired constructor( val creators = repository.findRecentlyActiveCreators(limit = 10, memberId = viewer.id) assertEquals(listOf(visibleCreator.nickname), creators.map { it.creatorNickname }) - assertEquals(RecommendedActivityType.COMMUNITY, creators.single().activityType) + assertEquals(CreatorActivityType.COMMUNITY, creators.single().activityType) } @Test diff --git a/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryServiceTest.kt b/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryServiceTest.kt index cc67828c..e72eebed 100644 --- a/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryServiceTest.kt +++ b/src/test/kotlin/kr/co/vividnext/sodalive/v2/recommendation/application/HomeRecommendationQueryServiceTest.kt @@ -1,6 +1,6 @@ package kr.co.vividnext.sodalive.v2.recommendation.application -import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedActivityType +import kr.co.vividnext.sodalive.v2.common.domain.CreatorActivityType import kr.co.vividnext.sodalive.v2.recommendation.domain.RecommendedSectionType import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeAiCharacterRecommendationRecord import kr.co.vividnext.sodalive.v2.recommendation.port.out.HomeBannerRecommendationRecord @@ -30,7 +30,7 @@ class HomeRecommendationQueryServiceTest { fun shouldClassifyLiveReplayThemeContentAsLiveReplay() { val activityType = service.resolveAudioContentActivityType(theme = "다시듣기") - assertEquals(RecommendedActivityType.LIVE_REPLAY, activityType) + assertEquals(CreatorActivityType.LIVE_REPLAY, activityType) } @Test @@ -38,16 +38,7 @@ class HomeRecommendationQueryServiceTest { fun shouldClassifyNonLiveReplayThemeContentAsAudio() { val activityType = service.resolveAudioContentActivityType(theme = "수면") - assertEquals(RecommendedActivityType.AUDIO, activityType) - } - - @Test - @DisplayName("활동 타입 enum code는 앱 다국어 처리를 위해 영문 값과 동일하게 유지한다") - fun shouldKeepRecommendedActivityTypeCodeAsEnglishName() { - assertEquals("LIVE", RecommendedActivityType.LIVE.code) - assertEquals("AUDIO", RecommendedActivityType.AUDIO.code) - assertEquals("COMMUNITY", RecommendedActivityType.COMMUNITY.code) - assertEquals("LIVE_REPLAY", RecommendedActivityType.LIVE_REPLAY.code) + assertEquals(CreatorActivityType.AUDIO, activityType) } @Test @@ -653,7 +644,7 @@ class HomeRecommendationQueryServiceTest { RecentlyActiveCreatorRecord( creatorNickname = "creator", creatorProfileImage = "profile.png", - activityType = RecommendedActivityType.LIVE, + activityType = CreatorActivityType.LIVE, activityAt = LocalDateTime.of(2026, 5, 31, 10, 0), targetId = null )