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

import com.gic.api.base.commons.BusinessException;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.haoban.manage.api.qdto.contact.ContactLogQDTO;
import com.gic.haoban.manage.service.entity.contact.TabContactLog;

import java.util.Date;
import java.util.List;
import java.util.Map;

public interface ContactLogService {

    /**
     * 是否可以建联判断
     * @param enterpriseId
     * @param memberId
     * @param clerkDTO
     * @return
     */
    Integer contactCheck(String enterpriseId, String memberId, ClerkDTO clerkDTO,Integer bizType) ;

    /**
     * 保存建联记录
     *
     * @param qdto
     */
    void saveContactLog(ContactLogQDTO qdto) throws BusinessException;

    /**
     * 自动建联
     * @param qdto
     */
    void autoContactLog(ContactLogQDTO qdto);

    /**
     * 同步建联
     * @param qdto
     */
    void syncContactLog(ContactLogQDTO qdto);

    /**
     * 清除建联状态
     *
     * @param memberId
     * @param clearType 1 消费清除 2 换绑主导购
     */
    void clearContactLog(String enterpriseId,String memberId, Integer clearType,String clerkId);

    /**
     * 获取最近一条有效建联记录
     *
     * @param memberId
     * @return
     */
    TabContactLog getClerkContactTime(String memberId);

    /**
     * 获取每个业务最近一条有效建联记录
     * @param memberId
     * @return
     */
    List<TabContactLog> getClerkContactTimeList(String memberId);

    /**
     * 获取最近一条建联记录
     * @param memberId
     * @param clerkId
     * @param beginTime
     * @param endTime
     * @return
     */
    Map<Integer,TabContactLog> getLastByTime(String memberId, String clerkId, Date beginTime, Date endTime);
}
