package io.spring.infrastructure.mybatis.readservice; import io.spring.application.CursorPageParameter; import io.spring.application.Page; import io.spring.application.data.ArticleData; import java.util.List; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @Mapper public interface ArticleReadService { ArticleData findById(@Param("id") String id); ArticleData findBySlug(@Param("slug") String slug); List queryArticles( @Param("tag") String tag, @Param("author") String author, @Param("favoritedBy") String favoritedBy, @Param("page") Page page); int countArticle( @Param("tag") String tag, @Param("author") String author, @Param("favoritedBy") String favoritedBy); List findArticles(@Param("articleIds") List articleIds); List findArticlesOfAuthors( @Param("authors") List authors, @Param("page") Page page); List findArticlesOfAuthorsWithCursor( @Param("authors") List authors, @Param("page") CursorPageParameter page); int countFeedSize(@Param("authors") List authors); List findArticlesWithCursor( @Param("tag") String tag, @Param("author") String author, @Param("favoritedBy") String favoritedBy, @Param("page") CursorPageParameter page); }