package kr.itn.itnhub.mattermost;

import kr.itn.itnhub.feed.FileRef;
import kr.itn.itnhub.feed.FileView;
import kr.itn.itnhub.feed.PostView;

import java.util.List;
import java.util.Optional;

public interface MattermostClient {

    Optional<String> findChannelIdByInternalName(String internalName);

    Optional<String> findChannelIdByDisplayName(String displayName);

    String createPrivateChannel(String internalName, String displayName);

    /** 채널의 최근 게시글 한 페이지를 오래된순(화면 표시 순서)으로 돌려준다. */
    List<PostView> getRecentPosts(String channelId, int perPage);

    /** 채널 전체를 페이지네이션하며 첨부파일을 전부 모아 최신순으로 돌려준다. */
    List<FileView> collectChannelFiles(String channelId);

    byte[] downloadFile(String fileId);

    FileRef fileInfo(String fileId);
}
