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

import com.gic.api.base.commons.BasePageInfo;
import com.gic.api.base.commons.Page;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanDTO;
import com.gic.haoban.manage.api.dto.chat.GroupChatPlanLogDTO;
import com.gic.haoban.manage.api.dto.qdto.chat.GroupChatPlanSearchQDTO;
import com.gic.haoban.manage.api.qdto.StaffSendResultQDTO;
import com.gic.haoban.manage.service.pojo.bo.chat.GroupChatPlanBO;
import com.gic.haoban.manage.service.service.content.impl.GroupMessageServiceImpl;

import java.util.Date;

public interface GroupChatPlanService {

    public void save(GroupChatPlanDTO dto);

    GroupChatPlanBO getById(Long planId);

    public Page<GroupChatPlanBO> listPage(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo);

    public void doPlan(Long planId);
    
    public void doPlanSendInfoTimer(String params) ;
    
    public void doPlanSendInfo(Long ownerLogId) ;

    public Page<GroupChatPlanLogDTO> listLogPage(GroupChatPlanSearchQDTO qdto, BasePageInfo basePageInfo);

    public void del(String clerkId, String clerkName, Long planId);
    
    public void stop(String clerkId, String clerkName, Long planId) ;

    public void updateRemark(GroupChatPlanDTO dto);

    void groupChatMsgidTimer(String params);

    void cancelSendTimer(String params);

    void staffSendResult(StaffSendResultQDTO qdto);

    void stopByMsgid(Long planId);

    String getQwMsgId(String staffId , Date sendTime, GroupMessageServiceImpl.GroupMsgChatType groupMsgChatType) ;

    void noticeTimer(String params);
}