package org.iatoki.judgels.raguel.forum.thread.post;
import com.google.inject.ImplementedBy;
import org.iatoki.judgels.play.Page;
import org.iatoki.judgels.raguel.forum.thread.ForumThread;
import java.util.List;
import java.util.Map;
@ImplementedBy(ThreadPostServiceImpl.class)
public interface ThreadPostService {
ThreadPost findThreadPostById(long threadPostId);
Map<String, Long> getThreadPostsJidToIdMap(List<String> threadPostJids);
Map<String, String> getThreadPostsJidToUserJidMap(List<String> threadPostJids);
long getUserPostCountByUserJid(String userJid);
long countThreadPost(ForumThread forumThread);
List<ThreadPostWithLevel> getAllThreadPostsWithLevel(ForumThread forumThread);
Page<ThreadPost> getPageOfThreadPosts(ForumThread forumThread, long pageIndex, long pageSize, String orderBy, String orderDir, String filterString);
void createPost(ForumThread forumThread, String userJid, String subject, String body, String userIpAddress);
void editPost(ThreadPost threadPost, String userJid, String subject, String body, String userIpAddress);
void replyPost(ThreadPost threadPost, String userJid, String subject, String body, String userIpAddress);
}