diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt index e3312d7..024981c 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberController.kt @@ -142,7 +142,14 @@ class MemberController(private val service: MemberService) { ) = run { if (member == null) throw SodaException("로그인 정보를 확인해주세요.") - ApiResponse.ok(service.creatorFollow(creatorId = request.creatorId, memberId = member.id!!)) + ApiResponse.ok( + service.creatorFollow( + creatorId = request.creatorId, + isNotify = request.isNotify ?: true, + isActive = request.isActive ?: true, + memberId = member.id!! + ) + ) } @PostMapping("/creator/unfollow") diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt index e1a96fc..38c143d 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/MemberService.kt @@ -331,7 +331,7 @@ class MemberService( } @Transactional - fun creatorFollow(creatorId: Long, memberId: Long) { + fun creatorFollow(creatorId: Long, isNotify: Boolean, isActive: Boolean, memberId: Long) { val creatorFollowing = creatorFollowingRepository.findByCreatorIdAndMemberId( creatorId = creatorId, memberId = memberId @@ -340,9 +340,14 @@ class MemberService( if (creatorFollowing == null) { val creator = repository.findByIdOrNull(creatorId) ?: throw SodaException("크리에이터 정보를 확인해주세요.") val member = repository.findByIdOrNull(memberId) ?: throw SodaException("로그인 정보를 확인해주세요.") - creatorFollowingRepository.save(CreatorFollowing(creator = creator, member = member)) + + val newCreatorFollowing = CreatorFollowing() + newCreatorFollowing.member = member + newCreatorFollowing.creator = creator + creatorFollowingRepository.save(newCreatorFollowing) } else { - creatorFollowing.isActive = true + creatorFollowing.isNotify = isNotify + creatorFollowing.isActive = isActive } } diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt index 453004b..3c32f9a 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowRequest.kt @@ -1,3 +1,7 @@ package kr.co.vividnext.sodalive.member.following -data class CreatorFollowRequest(val creatorId: Long) +data class CreatorFollowRequest( + val creatorId: Long, + val isNotify: Boolean?, + val isActive: Boolean? +) diff --git a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt index c0a3044..5165393 100644 --- a/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt +++ b/src/main/kotlin/kr/co/vividnext/sodalive/member/following/CreatorFollowing.kt @@ -8,16 +8,17 @@ import javax.persistence.JoinColumn import javax.persistence.ManyToOne @Entity -class CreatorFollowing( +data class CreatorFollowing( + var isNotify: Boolean = true, + var isActive: Boolean = true +) : BaseEntity() { // 유저가 알림받기 한 크리에이터 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "creator_id", nullable = false) - var creator: Member, + var creator: Member? = null // 크리에이터를 알림받기 한 유저 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id", nullable = false) - var member: Member, - - var isActive: Boolean = true -) : BaseEntity() + var member: Member? = null +}