feat(creator): 채널 홈 응답 계약을 보정한다

This commit is contained in:
2026-06-13 17:58:02 +09:00
parent 3fd957a0d1
commit d1ce1221c9
3 changed files with 14 additions and 28 deletions

View File

@@ -21,6 +21,7 @@ data class CreatorChannelHome(
data class CreatorChannelCreator( data class CreatorChannelCreator(
val creatorId: Long, val creatorId: Long,
val characterId: Long?,
val nickname: String, val nickname: String,
val profileImageUrl: String, val profileImageUrl: String,
val followerCount: Int, val followerCount: Int,
@@ -54,12 +55,9 @@ data class CreatorChannelAudioContent(
) )
data class CreatorChannelDonation( data class CreatorChannelDonation(
val donationId: Long,
val memberId: Long,
val nickname: String, val nickname: String,
val profileImageUrl: String, val profileImageUrl: String,
val can: Int, val can: Int,
val isSecret: Boolean,
val message: String, val message: String,
val createdAt: LocalDateTime val createdAt: LocalDateTime
) )
@@ -76,11 +74,8 @@ data class CreatorChannelSeries(
val seriesId: Long, val seriesId: Long,
val title: String, val title: String,
val coverImageUrl: String, val coverImageUrl: String,
val publishedDaysOfWeek: String,
val isComplete: Boolean,
val numberOfContent: Int, val numberOfContent: Int,
val isNew: Boolean, val isNew: Boolean,
val isPopular: Boolean,
val isOriginal: Boolean val isOriginal: Boolean
) )

View File

@@ -55,6 +55,7 @@ data class CreatorChannelHomeResponse(
data class CreatorChannelCreatorResponse( data class CreatorChannelCreatorResponse(
val creatorId: Long, val creatorId: Long,
val characterId: Long?,
val nickname: String, val nickname: String,
val profileImageUrl: String, val profileImageUrl: String,
val followerCount: Int, val followerCount: Int,
@@ -71,6 +72,7 @@ data class CreatorChannelCreatorResponse(
fun from(creator: CreatorChannelCreator): CreatorChannelCreatorResponse { fun from(creator: CreatorChannelCreator): CreatorChannelCreatorResponse {
return CreatorChannelCreatorResponse( return CreatorChannelCreatorResponse(
creatorId = creator.creatorId, creatorId = creator.creatorId,
characterId = creator.characterId,
nickname = creator.nickname, nickname = creator.nickname,
profileImageUrl = creator.profileImageUrl, profileImageUrl = creator.profileImageUrl,
followerCount = creator.followerCount, followerCount = creator.followerCount,
@@ -141,25 +143,18 @@ data class CreatorChannelAudioContentResponse(
} }
data class CreatorChannelDonationResponse( data class CreatorChannelDonationResponse(
val donationId: Long,
val memberId: Long,
val nickname: String, val nickname: String,
val profileImageUrl: String, val profileImageUrl: String,
val can: Int, val can: Int,
@JsonProperty("isSecret")
val isSecret: Boolean,
val message: String, val message: String,
val createdAtUtc: String val createdAtUtc: String
) { ) {
companion object { companion object {
fun from(donation: CreatorChannelDonation): CreatorChannelDonationResponse { fun from(donation: CreatorChannelDonation): CreatorChannelDonationResponse {
return CreatorChannelDonationResponse( return CreatorChannelDonationResponse(
donationId = donation.donationId,
memberId = donation.memberId,
nickname = donation.nickname, nickname = donation.nickname,
profileImageUrl = donation.profileImageUrl, profileImageUrl = donation.profileImageUrl,
can = donation.can, can = donation.can,
isSecret = donation.isSecret,
message = donation.message, message = donation.message,
createdAtUtc = donation.createdAt.toUtcIso() createdAtUtc = donation.createdAt.toUtcIso()
) )
@@ -189,14 +184,9 @@ data class CreatorChannelSeriesResponse(
val seriesId: Long, val seriesId: Long,
val title: String, val title: String,
val coverImageUrl: String, val coverImageUrl: String,
val publishedDaysOfWeek: String,
@JsonProperty("isComplete")
val isComplete: Boolean,
val numberOfContent: Int, val numberOfContent: Int,
@JsonProperty("isNew") @JsonProperty("isNew")
val isNew: Boolean, val isNew: Boolean,
@JsonProperty("isPopular")
val isPopular: Boolean,
@JsonProperty("isOriginal") @JsonProperty("isOriginal")
val isOriginal: Boolean val isOriginal: Boolean
) { ) {
@@ -206,11 +196,8 @@ data class CreatorChannelSeriesResponse(
seriesId = series.seriesId, seriesId = series.seriesId,
title = series.title, title = series.title,
coverImageUrl = series.coverImageUrl, coverImageUrl = series.coverImageUrl,
publishedDaysOfWeek = series.publishedDaysOfWeek,
isComplete = series.isComplete,
numberOfContent = series.numberOfContent, numberOfContent = series.numberOfContent,
isNew = series.isNew, isNew = series.isNew,
isPopular = series.isPopular,
isOriginal = series.isOriginal isOriginal = series.isOriginal
) )
} }

View File

@@ -34,9 +34,10 @@ class CreatorChannelHomeQueryServiceTest {
val response = CreatorChannelHomeResponse.from(home) val response = CreatorChannelHomeResponse.from(home)
assertEquals(home.creator.creatorId, response.creator.creatorId) assertEquals(home.creator.creatorId, response.creator.creatorId)
assertEquals(home.creator.characterId, response.creator.characterId)
assertEquals(home.currentLive?.liveId, response.currentLive?.liveId) assertEquals(home.currentLive?.liveId, response.currentLive?.liveId)
assertEquals(home.latestAudioContent?.audioContentId, response.latestAudioContent?.audioContentId) assertEquals(home.latestAudioContent?.audioContentId, response.latestAudioContent?.audioContentId)
assertEquals(home.channelDonations.first().donationId, response.channelDonations.first().donationId) assertEquals(home.channelDonations.first().message, response.channelDonations.first().message)
assertEquals(home.notices.first().postId, response.notices.first().postId) assertEquals(home.notices.first().postId, response.notices.first().postId)
assertEquals(home.schedules.first().targetId, response.schedules.first().targetId) assertEquals(home.schedules.first().targetId, response.schedules.first().targetId)
assertEquals(home.audioContents.first().audioContentId, response.audioContents.first().audioContentId) assertEquals(home.audioContents.first().audioContentId, response.audioContents.first().audioContentId)
@@ -89,6 +90,7 @@ class CreatorChannelHomeQueryServiceTest {
assertFalse(json["creator"].has("aiChatAvailable")) assertFalse(json["creator"].has("aiChatAvailable"))
assertFalse(json["creator"]["isDmAvailable"].asBoolean()) assertFalse(json["creator"]["isDmAvailable"].asBoolean())
assertFalse(json["creator"].has("dmAvailable")) assertFalse(json["creator"].has("dmAvailable"))
assertEquals(10L, json["creator"]["characterId"].asLong())
assertTrue(json["latestAudioContent"]["isPointAvailable"].asBoolean()) assertTrue(json["latestAudioContent"]["isPointAvailable"].asBoolean())
assertFalse(json["latestAudioContent"].has("pointAvailable")) assertFalse(json["latestAudioContent"].has("pointAvailable"))
assertTrue(json["latestAudioContent"]["isFirstContent"].asBoolean()) assertTrue(json["latestAudioContent"]["isFirstContent"].asBoolean())
@@ -97,6 +99,13 @@ class CreatorChannelHomeQueryServiceTest {
assertFalse(json["latestAudioContent"].has("adult")) assertFalse(json["latestAudioContent"].has("adult"))
assertTrue(json["series"][0]["isOriginal"].asBoolean()) assertTrue(json["series"][0]["isOriginal"].asBoolean())
assertFalse(json["series"][0].has("original")) assertFalse(json["series"][0].has("original"))
assertFalse(json["series"][0].has("published" + "DaysOfWeek"))
assertFalse(json["series"][0].has("is" + "Complete"))
assertFalse(json["series"][0].has("is" + "Popular"))
assertEquals("thanks", json["channelDonations"][0]["message"].asText())
assertFalse(json["channelDonations"][0].has("donation" + "Id"))
assertFalse(json["channelDonations"][0].has("member" + "Id"))
assertFalse(json["channelDonations"][0].has("is" + "Secret"))
} }
private fun createHome(): CreatorChannelHome { private fun createHome(): CreatorChannelHome {
@@ -118,6 +127,7 @@ class CreatorChannelHomeQueryServiceTest {
return CreatorChannelHome( return CreatorChannelHome(
creator = CreatorChannelCreator( creator = CreatorChannelCreator(
creatorId = 1L, creatorId = 1L,
characterId = 10L,
nickname = "creator", nickname = "creator",
profileImageUrl = "profile.png", profileImageUrl = "profile.png",
followerCount = 100, followerCount = 100,
@@ -149,12 +159,9 @@ class CreatorChannelHomeQueryServiceTest {
), ),
channelDonations = listOf( channelDonations = listOf(
CreatorChannelDonation( CreatorChannelDonation(
donationId = 401L,
memberId = 2L,
nickname = "fan", nickname = "fan",
profileImageUrl = "fan.png", profileImageUrl = "fan.png",
can = 50, can = 50,
isSecret = false,
message = "thanks", message = "thanks",
createdAt = LocalDateTime.of(2026, 6, 12, 2, 0) createdAt = LocalDateTime.of(2026, 6, 12, 2, 0)
) )
@@ -189,11 +196,8 @@ class CreatorChannelHomeQueryServiceTest {
seriesId = 601L, seriesId = 601L,
title = "series", title = "series",
coverImageUrl = "series.png", coverImageUrl = "series.png",
publishedDaysOfWeek = "MON",
isComplete = false,
numberOfContent = 3, numberOfContent = 3,
isNew = true, isNew = true,
isPopular = false,
isOriginal = true isOriginal = true
) )
), ),