package com.storlead.sales.service.customer;

import cn.hutool.core.bean.BeanUtil;
import com.storlead.framework.util.LoginUserUtil;
import com.storlead.framework.auth.vo.LoginUser;
import com.storlead.sales.pojo.entity.customer.CustomerEntity;
import com.storlead.sales.pojo.entity.customer.LiaisonEntity;
import com.storlead.sales.pojo.vo.customer.LiaisonListVO;
import com.storlead.sales.pojo.vo.customer.LiaisonMessageVO;
import com.storlead.sales.pojo.entity.target.TargetQuotaEntity;
import org.springframework.beans.BeanUtils;

import java.util.Map;
import java.util.Objects;
import java.util.Set;

public interface MessageAssembleService {

    /**
     * 发送客户消息
     * @param custormerId
     * @param messageEventCode
     */
     void sendCustomerEventMessages(Long custormerId, String messageEventCode);

     void sendCustomerPublicMessages(Long custormerId, String messageEventCode);

    /**
     * 发送客户消息
     * @param custormerId
     * @param messageEventCode
     * @param toUserIds 发送给谁
     */
     void sendCustomerEventMessages(Long custormerId, String messageEventCode, Set<Long> toUserIds);

     /***
       * @Description: 官网同步线索消息
       * @Param:
       * @return:
       * @Author: YPZ
       * @Date: 2025/3/11 16:31
       */
     void sendWebAddClusEventMessages(CustomerEntity customer, LiaisonEntity liaison, String messageEventCode, Set<Long> toUserIds);

    /**
     * 商机
     * @param bussinessId
     * @param messageEventCode
     */
    void sendBusinessEventMessages(Long bussinessId, String messageEventCode);
    void sendBusinessEventMessages(Long bussinessId, String messageEventCode, Set<Long> toUserIds);

    /**
     * 订单
     * @param orderId
     * @param messageEventCode
     */
    void sendOrderEventMessages(Long orderId, String messageEventCode);
    void sendOrderParentEventMessages(Long orderId, String messageEventCode);
    void sendOrderEventMessages(Long custormerId, String messageEventCode, Set<Long> toUserIds);

    /**
     * 跟进
     * @param followId
     * @param messageEventCode
     */
    void sendFollowEventMessages(Long followId, String messageEventCode);
    void sendFollowEventMessages(Long followId, String messageEventCode, Set<Long> toUserIds);

    /**
     * 商机发送消息
     * @param liaisonId
     * @param messageEventCode
     */
     void sendLiaisonEventMessages(Long liaisonId, String messageEventCode, Set<Long> toUserIds);

     void sendLiaisonEventMessages(Long liaisonId, String messageEventCode);

     /***
       * @Description: 目标发送消息
       * @Param:
       * @return:
       * @Author: YPZ
       * @Date: 2025/1/21 11:25
       */
     void sendTargetEventMessages(Long targetQuotaId, String messageEventCode, Set<Long> toUserIds, String jump);
     void sendTargetPlanEventMessages(Long targetPlanId, String messageEventCode, Set<Long> toUserIds, String jump);
     void sendTargetEventMessages(TargetQuotaEntity targetQuotaEntity, String messageEventCode, Set<Long> toUserIds, String jump);

     void sendTargetEventMessages(Long targetQuotaId, String messageEventCode, String jump);

     void sendRecordCommentMessages(Long followId, String messageEventCode);

     void sendBulletinMessages(Long bulletinId, String messageEventCode,String remindMode);

     void sendBulletinMessages(Long bulletinId, String messageEventCode, Set<Long> toUserIds, String remindMode);

     void sendBulletinCommentMessages(Long userId,Long bulletinId, String messageEventCode);

}
