diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistory.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistory.kt new file mode 100644 index 00000000..3c076488 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistory.kt @@ -0,0 +1,23 @@ +package kr.co.vividnext.sodalive.v2.recommend.adapter.out.persistence + +import kr.co.vividnext.sodalive.common.BaseEntity +import java.time.LocalDateTime +import javax.persistence.Column +import javax.persistence.Entity +import javax.persistence.Table + +@Entity +@Table(name = "creator_content_view_history") +class CreatorContentViewHistory( + @Column(name = "member_id", nullable = false, updatable = false) + val memberId: Long, + + @Column(name = "content_id", nullable = false, updatable = false) + val contentId: Long, + + @Column(name = "genre_id", nullable = false, updatable = false) + val genreId: Long, + + @Column(name = "viewed_at", nullable = false, updatable = false) + val viewedAt: LocalDateTime +) : BaseEntity() diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistoryRepository.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistoryRepository.kt new file mode 100644 index 00000000..3bf012bd --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/adapter/out/persistence/CreatorContentViewHistoryRepository.kt @@ -0,0 +1,5 @@ +package kr.co.vividnext.sodalive.v2.recommend.adapter.out.persistence + +import org.springframework.data.jpa.repository.JpaRepository + +interface CreatorContentViewHistoryRepository : JpaRepository diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/CreatorContentViewHistoryPort.kt b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/CreatorContentViewHistoryPort.kt new file mode 100644 index 00000000..830dc5b4 --- /dev/null +++ b/src/main/kotlin/kr/co/vividnext/sodalive/v2/recommend/port/out/CreatorContentViewHistoryPort.kt @@ -0,0 +1,16 @@ +package kr.co.vividnext.sodalive.v2.recommend.port.out + +import java.time.LocalDateTime + +interface CreatorContentViewHistoryPort { + fun findGenreIdByContentId(contentId: Long): Long? + + fun save(record: CreatorContentViewHistoryRecord) +} + +data class CreatorContentViewHistoryRecord( + val memberId: Long, + val contentId: Long, + val genreId: Long, + val viewedAt: LocalDateTime +)