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

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

import kr.co.hanwha.hifive.base.BaseDataSource;
import kr.co.hanwha.hifive.data.model.AlarmData;
import kr.co.hanwha.hifive.data.model.AlarmListRoot;
import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;

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

public interface AlarmDataSource extends BaseDataSource {
    /**
     * 알람 목록 조회
     *
     * @param context  Context
     * @param page PAGE
     * @param callback 콜백
     */
    void getAlarmList(@NonNull Context context, @NonNull int page, @NonNull HanwhaNetworkCallback<AlarmListRoot> callback);

    /**
     * 알림 확인
     *
     * @param context    Context
     * @param group_id   노티 그룹 아이디
     * @param task_id    Task ID (Optional)
     * @param project_id Project ID (Optional)
     * @param track_id   Track ID (Optional)
     * @param callback   콜백
     */
    void requestNotificationOpen(@NonNull Context context,
                                 @Nullable int group_id,
                                 @Nullable int task_id,
                                 @Nullable int project_id,
                                 @Nullable int track_id,
                                 @Nullable HanwhaNetworkCallback callback);

    /**
     * 알림 확인
     *
     * @param context  Context
     * @param data     알림 정보
     * @param callback 콜백
     */
    void requestNotificationOpen(@NonNull Context context,
                                 @NonNull AlarmData data,
                                 @Nullable HanwhaNetworkCallback callback);
}
