feat(creator-channel): 오디오 탭 조회 계약을 추가한다
This commit is contained in:
@@ -0,0 +1,23 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.audio.domain
|
||||
|
||||
import kr.co.vividnext.sodalive.v2.common.domain.ContentSort
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.common.domain.CreatorChannelAudioContent
|
||||
import kr.co.vividnext.sodalive.v2.creator.channel.live.domain.CreatorChannelPage
|
||||
|
||||
data class CreatorChannelAudioTab(
|
||||
val audioContentCount: Int,
|
||||
val paidAudioContentCount: Int,
|
||||
val purchasedAudioContentCount: Int,
|
||||
val purchasedAudioContentRate: Double,
|
||||
val themes: List<CreatorChannelAudioTheme>,
|
||||
val audioContents: List<CreatorChannelAudioContent>,
|
||||
val sort: ContentSort,
|
||||
val themeId: Long?,
|
||||
val page: CreatorChannelPage,
|
||||
val hasNext: Boolean
|
||||
)
|
||||
|
||||
data class CreatorChannelAudioTheme(
|
||||
val themeId: Long,
|
||||
val themeName: String
|
||||
)
|
||||
@@ -0,0 +1,75 @@
|
||||
package kr.co.vividnext.sodalive.v2.creator.channel.audio.port.out
|
||||
|
||||
import kr.co.vividnext.sodalive.member.MemberRole
|
||||
import kr.co.vividnext.sodalive.v2.common.domain.ContentSort
|
||||
import java.time.LocalDateTime
|
||||
|
||||
interface CreatorChannelAudioQueryPort {
|
||||
fun findCreator(creatorId: Long, viewerId: Long?): CreatorChannelAudioCreatorRecord?
|
||||
|
||||
fun existsBlockedBetween(viewerId: Long, creatorId: Long): Boolean
|
||||
|
||||
fun findActiveThemeId(themeId: Long): Long?
|
||||
|
||||
fun findAudioThemes(locale: String): List<CreatorChannelAudioThemeRecord>
|
||||
|
||||
fun countAudioContents(
|
||||
creatorId: Long,
|
||||
themeId: Long?,
|
||||
now: LocalDateTime,
|
||||
canViewAdultContent: Boolean
|
||||
): Int
|
||||
|
||||
fun countPaidAudioContents(
|
||||
creatorId: Long,
|
||||
themeId: Long?,
|
||||
now: LocalDateTime,
|
||||
canViewAdultContent: Boolean
|
||||
): Int
|
||||
|
||||
fun countPurchasedAudioContents(
|
||||
creatorId: Long,
|
||||
viewerId: Long,
|
||||
themeId: Long?,
|
||||
now: LocalDateTime,
|
||||
canViewAdultContent: Boolean
|
||||
): Int
|
||||
|
||||
fun findAudioContents(
|
||||
creatorId: Long,
|
||||
viewerId: Long,
|
||||
themeId: Long?,
|
||||
now: LocalDateTime,
|
||||
canViewAdultContent: Boolean,
|
||||
sort: ContentSort,
|
||||
locale: String,
|
||||
offset: Long,
|
||||
limit: Int
|
||||
): List<CreatorChannelAudioContentRecord>
|
||||
}
|
||||
|
||||
data class CreatorChannelAudioCreatorRecord(
|
||||
val creatorId: Long,
|
||||
val role: MemberRole,
|
||||
val nickname: String
|
||||
)
|
||||
|
||||
data class CreatorChannelAudioThemeRecord(
|
||||
val themeId: Long,
|
||||
val themeName: String
|
||||
)
|
||||
|
||||
data class CreatorChannelAudioContentRecord(
|
||||
val audioContentId: Long,
|
||||
val title: String,
|
||||
val duration: String?,
|
||||
val imagePath: String?,
|
||||
val price: Int,
|
||||
val isAdult: Boolean,
|
||||
val isPointAvailable: Boolean,
|
||||
val isFirstContent: Boolean,
|
||||
val seriesName: String?,
|
||||
val isOriginalSeries: Boolean?,
|
||||
val isOwned: Boolean,
|
||||
val isRented: Boolean
|
||||
)
|
||||
Reference in New Issue
Block a user