package kr.co.hanwha.hifive.screen.task.contract;

import android.support.annotation.NonNull;
import android.support.annotation.Nullable;

import java.util.ArrayList;

import kr.co.hanwha.hifive.base.BasePresenter;
import kr.co.hanwha.hifive.base.BaseView;
import kr.co.hanwha.hifive.data.model.MemberInfoData;
import kr.co.hanwha.hifive.data.model.ProjectInfoData;

/**
 * Add Task : 멤버 선택 Interface
 *
 * @see kr.co.hanwha.hifive.screen.task.AddTaskSelectMemberActivity
 * @see kr.co.hanwha.hifive.screen.task.AddTaskSelectMemberPresenter
 * Created by sanghoonkwon on 2018. 1. 18..
 */

public interface AddTaskSelectMemberContract {

    interface View extends BaseView<AddTaskContract.Presenter> {
        /**
         * 선택한 멤버 레이아웃 노출
         *
         * @param visible Boolean
         */
        void setSelectedMemberVisible(boolean visible);

        /**
         * 선택된 수 표시
         *
         * @param count Integer
         */
        void setCompleteCount(int count);
    }

    interface Presenter extends BasePresenter {
        /**
         * 전체 멤버 목록 조회
         */
        void initData();

        /**
         * 선택 상태 변경
         *
         * @param data     멤버 정보
         * @param index    List index
         * @param isSelect Boolean
         */
        void updateObjectSelect(@NonNull MemberInfoData data, @NonNull int index, @NonNull boolean isSelect);

        /**
         * 선택된 멤버 목록 표시
         */
        void refreshSelectedMember();

        /**
         * 선택 완료
         */
        void doCompleted();
    }

}
