package com.openisle.repository; import com.openisle.model.Post; import com.openisle.model.PostStatus; import com.openisle.model.User; import com.openisle.model.Category; import com.openisle.model.Tag; import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; import java.util.List; public interface PostRepository extends JpaRepository { List findByStatus(PostStatus status); List findByStatus(PostStatus status, Pageable pageable); List findByAuthorAndStatusOrderByCreatedAtDesc(User author, PostStatus status, Pageable pageable); List findByCategoryInAndStatus(List categories, PostStatus status); List findByCategoryInAndStatus(List categories, PostStatus status, Pageable pageable); List findDistinctByTagsInAndStatus(List tags, PostStatus status); List findDistinctByTagsInAndStatus(List tags, PostStatus status, Pageable pageable); List findByTitleContainingIgnoreCaseOrContentContainingIgnoreCaseAndStatus(String titleKeyword, String contentKeyword, PostStatus status); List findByContentContainingIgnoreCaseAndStatus(String keyword, PostStatus status); List findByTitleContainingIgnoreCaseAndStatus(String keyword, PostStatus status); }