refactor(recommendation): 홈 추천 활동 타입 참조를 교체한다
This commit is contained in:
@@ -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()
|
||||
)
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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")
|
||||
}
|
||||
@@ -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?
|
||||
)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user