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

import android.support.annotation.NonNull;

import java.util.ArrayList;

import kr.co.hanwha.hifive.adapter.model.SearchListViewHolderData;
import kr.co.hanwha.hifive.data.model.ProfileData;
import kr.co.hanwha.hifive.data.model.ProjectInfoData;
import kr.co.hanwha.hifive.data.model.SearchIntegrationData;
import kr.co.hanwha.hifive.data.model.TaskListData;
import kr.co.hanwha.hifive.enums.ViewHolderSearchType;

/**
 * 검색 결과 어댑터 Interface
 *
 * @see kr.co.hanwha.hifive.adapter.SearchTaskListAdapter
 * <p>
 * Created by sanghoonkwon on 2018. 1. 23..
 */

public interface SearchTaskListContract {
    interface OnSearchListListener {
        /**
         * 아이템 클릭
         */
        void onItemClicked(@NonNull SearchListViewHolderData data);

        /**
         * 더보기 클릭
         */
        void onMoreClicked(@NonNull ViewHolderSearchType type);
    }

    interface View {
        void notifyDataAll();

        void notifyDataRangeChanged(int positionStart, int itemCount);
    }

    interface Model {
        void clearItems();

        void addItem(TaskListData data);

        void addItem(TaskListData data, int index);

        void addItems(ArrayList<TaskListData> list);

        void addItems(ArrayList<ProfileData> resultMembers, ArrayList<TaskListData> resultTasks, ArrayList<ProjectInfoData> resultProjects);

        void addItems(SearchIntegrationData response);
    }
}
