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

import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanDTO;
import com.gic.haoban.manage.api.dto.moment.QwMomentPlanWxaDTO;
import com.gic.haoban.manage.api.qdto.moment.PlanListWxaQDTO;
import com.gic.haoban.manage.api.qdto.moment.QwMomentPlanQDTO;
import com.gic.haoban.manage.api.qdto.moment.TaskNumQDTO;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlan;
import com.gic.haoban.manage.service.entity.moment.TabQwMomentPlanAttend;

public interface QwMomentPlanService {

    ServiceResponse<QwMomentPlanDTO> save(QwMomentPlanDTO plan) ;

    ServiceResponse<Void> del(Long planId) ;

    ServiceResponse<Void> stop(Long planId) ;

    void cancelQw(Long planId) ;
    ServiceResponse<QwMomentPlanDTO> detail(Long planId) ;

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

    void initTaskClerk(String params);

    void sendPlanNoticeTimer(String params);

    void notice(String planId);

    ServiceResponse<Integer> getTaskNum(TaskNumQDTO qdto);

    ServiceResponse<Page<QwMomentPlanWxaDTO>> planListWxa(PlanListWxaQDTO qdto);


    void getQwData(Long planId) ;

    /**
     * 拉取企微点赞、评论
     * @param task
     */
    void getQwData(TabQwMomentPlanAttend task , int type, String planMomentId) ;


    void getMomentId(Long planId) ;


    void sendToQiwei(TabQwMomentPlan plan) ;

    /**
     * 是否已发布
     * @param planId
     */
    void getQwPublishData(Long planId , String cursor) ;

    void qwDataTimer(String params);

    void sendRetry(Long qwPlanId);

    void cancelTimeOutTimer(String params);
}
