package com.guams.review.service; import com.guams.review.model.AuthorRepository; import com.guams.review.model.dao.Post; import com.guams.review.model.PostRepository; import com.guams.review.model.dao.PostWithAuthor; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; import java.util.Optional; import java.util.UUID; @Service @RequiredArgsConstructor public class PostService { private final PostRepository postRepository; private final AuthorRepository authorRepository; public List list() { return postRepository.findAll(); } public Optional findById(Long id) { return postRepository.findById(id); } public List listWithAuthors() { return postRepository.findPostsWithAuthors(); } public Post insert(Post post) { return postRepository.save(post); } @Transactional public void delete(UUID authorId, Long postId) { authorRepository.deletePublication(authorId, postId); postRepository.deleteById(postId); } }