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

import com.gic.api.base.commons.Page;
import com.gic.api.base.commons.ServiceResponse;
import com.gic.haoban.manage.api.dto.welcome.dto.FriendSettingDetailDTO;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeDetailDTO;
import com.gic.haoban.manage.api.dto.welcome.dto.WelcomeListDTO;
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.api.dto.welcome.qdto.SaveFriendSettingQDTO;
import com.gic.haoban.manage.api.dto.welcome.qdto.SaveWelcomeQDTO;

import java.util.List;

/**
 * desc：欢迎语对外服务接口
 *
 * @author: YongEn
 * @date: 2022/2/11
 **/
public interface WelcomeApiService {


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

    /**
     * desc: 保存欢迎语
     *
     * @param qdto qdto
     * @return : {@link ServiceResponse < Boolean>}
     * @author : YongEn
     * @date : 2022/2/11
     */
    ServiceResponse<Boolean> saveWelcome(SaveWelcomeQDTO qdto);

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

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

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

    /**
     * desc: 保存加好友配置
     *
     * @param qdto qdto
     * @return : {@link ServiceResponse< Boolean>}
     * @author : YongEn
     * @date : 2022/2/11
     */
    ServiceResponse<Boolean> saveFriendSetting(SaveFriendSettingQDTO qdto);

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

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

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

    /**
     * 条件查询欢迎语列表
     * @param queryWelcomeQDTO
     * @return
     */
    ServiceResponse<Page<WelcomeListDTO>> listWelcomeWithCondition(QueryWelcomeQDTO queryWelcomeQDTO);

    /**
     * 删除欢迎语，带欢迎语校验
     * @param welcomeId
     * @return
     */
    ServiceResponse<WelcomeRemoveCheckDTO> removeWelcomeWithErrorInfo(String welcomeId);


    /**
     * 欢迎语被引用统计
     * @param welcomeId
     * @return
     */
    ServiceResponse<WelcomeRemoveCheckDTO> welcomeReferStatistics(String welcomeId);

}
