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

import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeRemoveCheckDTO;
import com.gic.haoban.manage.api.dto.welcome.qdto.QueryWelcomeQDTO;
import com.gic.haoban.manage.service.pojo.bo.welcome.*;

import java.util.List;

/**
 * desc：欢迎语接口服务
 *
 * @author: YongEn
 * @date: 2022/2/8
 **/
public interface WelcomeService {

    /**
     * desc: 保存欢迎语
     *
     * @param bo bo
     * @return : {@link Boolean}
     * @author : YongEn
     * @date : 2022/2/8
     */
    Boolean saveWelcome(SaveWelcomeBO bo);

    /**
     * desc: 删除欢迎语配置
     *
     * @param welcomeId 欢迎语id
     * @return : {@link Boolean}
     * @author : YongEn
     * @date : 2022/2/8
     */
    Boolean removeWelcome(String welcomeId);

    /**
     * desc: 获取欢迎语列表
     *
     * @param wxEnterpriseId 微信企业id
     * @param title          标题
     * @return : {@link List<  WelcomeListBO >}
     * @author : YongEn
     * @date : 2022/2/8
     */
    List<WelcomeListBO> listWelcome(String wxEnterpriseId, String title);

    /**
     * desc: 获取欢迎语详情
     *
     * @param welcomeId    欢迎语id
     * @param enterpriseId 企业id
     * @return : {@link WelcomeDetailBO}
     * @author : YongEn
     * @date : 2022/2/8
     */
    WelcomeDetailBO getWelcome(String welcomeId, String enterpriseId);

    /**
     * desc: 保存加好友配置
     *
     * @param bo bo
     * @return : {@link Boolean}
     * @author : YongEn
     * @date : 2022/2/8
     */
    Boolean saveFriendSetting(SaveFriendSettingBO bo);

    /**
     * desc: 获取加好友配置
     *
     * @param wxEnterpriseId 微信企业id
     * @return : {@link FriendSettingDetailBO}
     * @author : YongEn
     * @date : 2022/2/8
     */
    FriendSettingDetailBO getFriendSetting(String wxEnterpriseId);

    /**
     * desc: 根据员工所在部门匹配欢迎语
     *
     * @param staffId        员工id
     * @param wxEnterpriseId 微信企业id
     * @return : {@link WelcomeDetailBO}
     * @author : YongEn
     * @date : 2022/2/9
     */
    WelcomeDetailBO getMatchWelcome(String staffId, String wxEnterpriseId);

    /**
     * desc: 新增默认欢迎语
     *
     * @param wxEnterpriseId 微信企业id
     * @return : {@link Boolean}
     * @author : YongEn
     * @date : 2022/2/25
     */
    Boolean saveDefaultWelcome(String wxEnterpriseId);

    /**
     * desc: 校验是否存在默认欢迎语
     *
     * @param wxEnterpriseId 微信企业id
     * @return : {@link Boolean}
     * @author : YongEn
     * @date : 2022/3/9
     */
    Boolean existDefaultWelcome(String wxEnterpriseId);

    /**
     * desc: 刷新欢迎语媒体
     *
     * @return : {@link ServiceResponse < Boolean>}
     * @author : YongEn
     * @date : 2022/3/11
     */
    Boolean flushWelcomeMedia();

    /**
     * 条件查询
     *
     * @param queryWelcomeQDTO
     * @return
     */
    Page<WelcomeListBO> queryWelcomeList(QueryWelcomeQDTO queryWelcomeQDTO);


    /**
     * 根据 关联关系获取对应的欢迎语
     *
     * @param staffId
     * @param wxEnterpriseId
     * @param referId 活码 / 链接id
     * @return
     */
    WelcomeDetailBO getMatchWelcomeWithReferId(String staffId, String wxEnterpriseId, WelcomeReferBO welcomeReferBo);

    /**
     * 删除欢迎语
     * @param welcomeId
     * @return
     */
    WelcomeRemoveCheckDTO removeWithErrorInfo(String welcomeId);

    /**
     * 欢迎语引用情况统计
     * @param welcomeId
     * @return
     */
    WelcomeRemoveCheckDTO welcomeReferStatistics(String welcomeId);
}
