diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/application/HomeRecommendationFacade.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/application/HomeRecommendationFacade.kt index e7a41960..27997960 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/application/HomeRecommendationFacade.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/application/HomeRecommendationFacade.kt @@ -270,7 +270,8 @@ class HomeRecommendationFacade( creatorProfileImage = imageUrl(cloudFrontHost, creatorProfileImage), title = title, coverImage = imageUrl(cloudFrontHost, coverImage), - releaseDate = releaseDate.toUtcIso() + releaseDate = releaseDate.toUtcIso(), + isPointAvailable = isPointAvailable ) private fun HomeAiCharacterRecommendationRecord.toItem() = HomeAiCharacterItem( diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/dto/HomeRecommendationResponse.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/dto/HomeRecommendationResponse.kt index bf1a6039..c55fa169 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/dto/HomeRecommendationResponse.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/api/home/dto/HomeRecommendationResponse.kt @@ -66,7 +66,8 @@ data class HomeFirstAudioContentItem( val creatorProfileImage: String?, val title: String, val coverImage: String?, - val releaseDate: String + val releaseDate: String, + val isPointAvailable: Boolean ) data class HomeAiCharacterItem( diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt index aabf0170..592cb225 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/DefaultHomeRecommendationQueryRepository.kt @@ -395,6 +395,7 @@ class DefaultHomeRecommendationQueryRepository( ac.cover_image as cover_image, ac.release_date as release_date, ac.is_active as is_active, + ac.is_point_available as is_point_available, row_number() over ( partition by ac.member_id order by ac.created_at asc, ac.release_date asc, ac.id asc @@ -421,6 +422,7 @@ class DefaultHomeRecommendationQueryRepository( ec.title as title, ec.cover_image as cover_image, ec.release_date as release_date, + ec.is_point_available as is_point_available, case when ec.release_date >= :recency3Start then 100 when ec.release_date >= :recency7Start then 80 @@ -471,8 +473,9 @@ class DefaultHomeRecommendationQueryRepository( title = row[4] as String, coverImage = row[5] as String?, releaseDate = toLocalDateTime(row[6]), - recencyScore = (row[7] as Number).toInt(), - randomTieBreaker = (row[8] as Number).toDouble() + isPointAvailable = row[7] as Boolean, + recencyScore = (row[8] as Number).toInt(), + randomTieBreaker = (row[9] as Number).toDouble() ) } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/HomeRecommendationQueryPort.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/HomeRecommendationQueryPort.kt index 430c1358..1875d975 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/HomeRecommendationQueryPort.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/HomeRecommendationQueryPort.kt @@ -126,6 +126,7 @@ data class HomeFirstAudioContentRecord( val title: String, val coverImage: String?, val releaseDate: LocalDateTime, + val isPointAvailable: Boolean, val recencyScore: Int, val randomTieBreaker: Double )