EbookPolicy.java
package qwerty.chaekit.service.ebook;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import qwerty.chaekit.domain.ebook.Ebook;
import qwerty.chaekit.domain.ebook.purchase.repository.EbookPurchaseRepository;
import qwerty.chaekit.domain.member.user.UserProfile;
import qwerty.chaekit.global.enums.ErrorCode;
import qwerty.chaekit.global.exception.ForbiddenException;
@Service
@Transactional(readOnly = true)
@RequiredArgsConstructor
public class EbookPolicy {
private final EbookPurchaseRepository ebookPurchaseRepository;
public void assertEBookPurchased(UserProfile user, Ebook ebook) {
if (!ebookPurchaseRepository.existsByUserIdAndEbookId(user.getId(), ebook.getId())) {
throw new ForbiddenException(ErrorCode.EBOOK_NOT_PURCHASED);
}
}
}