package kr.co.hanwha.hifive.data.source.contract;

import android.content.Context;
import android.support.annotation.NonNull;
import android.text.TextUtils;

import java.util.ArrayList;

import kr.co.hanwha.hifive.base.BaseDataSource;
import kr.co.hanwha.hifive.data.model.CampaignData;
import kr.co.hanwha.hifive.data.model.ProjectCampaignData;
import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;

public interface TaskCampaignDataSource extends BaseDataSource {
    /**
     * 해당 프로젝트에 속한 Campaign 목록
     *
     * @param context          Context
     * @param listReqProjectId 받는 사람 목록에 있는 Project Id(Default 내가 속한 프로젝트 추가)
     * @param callback         콜백
     */
    void requestCampaignListByProjectId(@NonNull Context context,
                                        @NonNull ArrayList<Integer> listReqProjectId,
                                        @NonNull HanwhaNetworkCallback callback);

    /**
     * 해당 멤버에 속한 Campaign 목록
     *
     * @param context        Context
     * @param listMemberInfo 받는 사람 목록에 있는 Member Id
     * @param callback       콜백
     */
    void requestCampaignListByMemberId(@NonNull Context context,
                                       @NonNull ArrayList<Integer> listMemberInfo,
                                       @NonNull HanwhaNetworkCallback callback);

    String getVerifiedCampaignKey();

    void setUnverifiedCampaignInfo();

    void setVerifyCampaignInfo();

    void setVerifyCampaignInfo(String verifyCampaignKey);

    void setCampaignListSelect(CampaignData data);

    ProjectCampaignData getSelectedCampaignData();

    void clearSelectedCampaignData();
}
