diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/domain/CreatorChannelSeriesTab.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/domain/CreatorChannelSeriesTab.kt new file mode 100644 index 00000000..29c58cb0 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/domain/CreatorChannelSeriesTab.kt @@ -0,0 +1,26 @@ +package kr.co.vividnext.sodalive.v2.creator.channel.series.domain + +import kr.co.vividnext.sodalive.v2.common.domain.ContentSort +import kr.co.vividnext.sodalive.v2.creator.channel.live.domain.CreatorChannelPage + +data class CreatorChannelSeriesTab( + val seriesCount: Int, + val series: List, + val sort: ContentSort, + val page: CreatorChannelPage, + val hasNext: Boolean +) + +data class CreatorChannelSeries( + val seriesId: Long, + val title: String, + val coverImageUrl: String?, + val publishedDaysOfWeek: String, + val isOriginal: Boolean, + val isAdult: Boolean, + val isProceeding: Boolean, + val contentCount: Int, + val purchasedContentCount: Int?, + val paidContentCount: Int?, + val purchasedPaidContentRate: Int? +) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/port/out/CreatorChannelSeriesQueryPort.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/port/out/CreatorChannelSeriesQueryPort.kt new file mode 100644 index 00000000..17afc1f1 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/creator/channel/series/port/out/CreatorChannelSeriesQueryPort.kt @@ -0,0 +1,45 @@ +package kr.co.vividnext.sodalive.v2.creator.channel.series.port.out + +import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesPublishedDaysOfWeek +import kr.co.vividnext.sodalive.creator.admin.content.series.SeriesState +import kr.co.vividnext.sodalive.member.MemberRole +import kr.co.vividnext.sodalive.v2.common.domain.ContentSort +import java.time.LocalDateTime + +interface CreatorChannelSeriesQueryPort { + fun findCreator(creatorId: Long, viewerId: Long?): CreatorChannelSeriesCreatorRecord? + + fun existsBlockedBetween(viewerId: Long, creatorId: Long): Boolean + + fun countSeries(creatorId: Long, now: LocalDateTime, canViewAdultContent: Boolean): Int + + fun findSeries( + creatorId: Long, + viewerId: Long, + now: LocalDateTime, + canViewAdultContent: Boolean, + sort: ContentSort, + locale: String, + offset: Long, + limit: Int + ): List +} + +data class CreatorChannelSeriesCreatorRecord( + val creatorId: Long, + val role: MemberRole, + val nickname: String +) + +data class CreatorChannelSeriesRecord( + val seriesId: Long, + val title: String, + val coverImagePath: String?, + val publishedDaysOfWeek: Set, + val isOriginal: Boolean, + val isAdult: Boolean, + val state: SeriesState, + val contentCount: Int, + val purchasedContentCount: Int?, + val paidContentCount: Int? +)