package kr.co.hanwha.hifive.adapter.contract;

import android.support.annotation.NonNull;

import java.util.ArrayList;

import kr.co.hanwha.hifive.data.model.MessageListData;
import kr.co.hanwha.hifive.data.model.TaskDetailRoot;

/**
 * Created by sanghoonkwon on 2018. 1. 22..
 */

public interface TaskDetailListContract {
    interface OnTaskDetailListener {
        /**
         * Web Link 클릭
         *
         * @param url URL
         */
        void onUrlLinkClicked(String url);

        /**
         * 댓글 더 보기 선택
         */
        void onMessageMoreClicked();

        /**
         * 태그 선택
         *
         * @param tag 태그
         */
        void onTagClicked(@NonNull String tag);

        /**
         * 평가 선택
         */
        void onEvaluationClicked();

        /**
         * 댓글 삭제 선택
         */
        void onDeleteCommentClicked(MessageListData data);
    }

    interface View {
        void notifyDataAll();

        void notifyDataAllWithoutHeader();

        void notifyDataRangeChanged(int positionStart, int itemCount);
    }

    interface Model {
        void clearItems();

        void setTaskItem(TaskDetailRoot taskDetailRoot);

        void addItem(MessageListData data);

        void addItem(MessageListData data, int index);

        void addItems(ArrayList<MessageListData> list);

        void setTotalCount(int totalCount);
    }
}
