라이브 방 - 아고라 설정 및 라이브 방 관련 API

This commit is contained in:
2023-08-01 04:56:47 +09:00
parent f393c7630e
commit 58a7f87ffd
37 changed files with 1823 additions and 6 deletions

View File

@@ -0,0 +1,3 @@
package kr.co.vividnext.sodalive.member.following
data class CreatorFollowRequest(val creatorId: Long)

View File

@@ -0,0 +1,23 @@
package kr.co.vividnext.sodalive.member.following
import kr.co.vividnext.sodalive.common.BaseEntity
import kr.co.vividnext.sodalive.member.Member
import javax.persistence.Entity
import javax.persistence.FetchType
import javax.persistence.JoinColumn
import javax.persistence.ManyToOne
@Entity
class CreatorFollowing(
// 유저가 알림받기 한 크리에이터
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "creator_id", nullable = false)
var creator: Member,
// 크리에이터를 알림받기 한 유저
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "member_id", nullable = false)
var member: Member,
var isActive: Boolean = true
) : BaseEntity()

View File

@@ -0,0 +1,28 @@
package kr.co.vividnext.sodalive.member.following
import com.querydsl.jpa.impl.JPAQueryFactory
import kr.co.vividnext.sodalive.member.following.QCreatorFollowing.creatorFollowing
import org.springframework.data.jpa.repository.JpaRepository
import org.springframework.stereotype.Repository
@Repository
interface CreatorFollowingRepository : JpaRepository<CreatorFollowing, Long>, CreatorFollowingQueryRepository
interface CreatorFollowingQueryRepository {
fun findByCreatorIdAndMemberId(creatorId: Long, memberId: Long): CreatorFollowing?
}
@Repository
class CreatorFollowingQueryRepositoryImpl(
private val queryFactory: JPAQueryFactory
) : CreatorFollowingQueryRepository {
override fun findByCreatorIdAndMemberId(creatorId: Long, memberId: Long): CreatorFollowing? {
return queryFactory
.selectFrom(creatorFollowing)
.where(
creatorFollowing.creator.id.eq(creatorId)
.and(creatorFollowing.member.id.eq(memberId))
)
.fetchFirst()
}
}