package com.gic.haoban.manage.api.service.moment;

import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.*;
import com.gic.haoban.manage.api.qdto.moment.*;

public interface QwMomentApiService {

    ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO plan) ;

    ServiceResponse<Void> del(Long planId) ;

    ServiceResponse<Void> stop(Long planId) ;

    ServiceResponse<QwMomentPlanDTO> detail(Long planId) ;

    ServiceResponse<Page<QwMomentPlanDTO>> planList(QwMomentPlanQDTO qdto) ;

    ServiceResponse<Page<QwMomentPlanAttendDTO>> attendList(PlanClerkListQDTO qdto) ;

    ServiceResponse<Page<QwMomentPlanDataDTO>> dataList(PlanDataListQDTO qdto) ;

    /**
     * 立即发送朋友圈
     * @param params
     */
    void initTaskClerk(String params) ;


    /**
     * 定时发送任务创建通知/执行
     * @param params
     */
    void sendPlanNoticeTimer(String params) ;

    /**
     * 好办小程序-活动数
     * @param qdto
     * @return
     */
    ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto) ;


    /**
     * 好办小程序活动列表
     * @param qdto
     * @return
     */
    ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto) ;

    /**
     * 好办小程序活动任务列表
     * @param qdto
     * @return
     */
    ServiceResponse<Page<TaskListWxaDTO>> taskListWxa(TaskListWxaQDTO qdto) ;

    /**
     * 好办任务详情
     * @param planId
     * @param execClerkId
     * @return
     */
    ServiceResponse<TaskDetailDTO> taskDetail(Long planId, String execClerkId);

    /**
     * 完成任务
     * @param qdto
     * @return
     */
    ServiceResponse<Void> finishTask(SendResultQDTO qdto);


    /**
     * 定时拉取企微数据
     * @param params
     * @return
     */
    ServiceResponse<Void> qwDataTimer(String params) ;

}
