package com.fs.company.service;

import com.fs.company.domain.CompanyVoiceRoboticCallBlacklist;
import com.fs.company.param.CompanyVoiceRoboticCallBlacklistCheckParam;
import com.fs.company.vo.CompanyVoiceRoboticCallBlacklistCheckVO;

import java.util.List;

/**
 * 黑名单Service接口
 * 
 * @author fs
 * @date 2023-02-23
 */
public interface ICompanyVoiceRoboticCallBlacklistService
{
    /**
     * 查询黑名单
     * 
     * @param blacklistId 黑名单ID
     * @return 黑名单
     */
    public CompanyVoiceRoboticCallBlacklist selectCompanyVoiceRoboticCallBlacklistById(Long blacklistId);

    /**
     * 查询黑名单列表
     * 
     * @param companyCallBlacklist 黑名单
     * @return 黑名单集合
     */
    public List<CompanyVoiceRoboticCallBlacklist> selectCompanyVoiceRoboticCallBlacklistList(CompanyVoiceRoboticCallBlacklist companyCallBlacklist);

    /**
     * 新增黑名单
     * 
     * @param companyCallBlacklist 黑名单
     * @return 结果
     */
    public int insertCompanyVoiceRoboticCallBlacklist(CompanyVoiceRoboticCallBlacklist companyCallBlacklist);

    /**
     * 修改黑名单
     * 
     * @param companyCallBlacklist 黑名单
     * @return 结果
     */
    public int updateCompanyVoiceRoboticCallBlacklist(CompanyVoiceRoboticCallBlacklist companyCallBlacklist);

    /**
     * 批量删除黑名单
     * 
     * @param blacklistIds 需要删除的黑名单ID
     * @return 结果
     */
    public int deleteCompanyVoiceRoboticCallBlacklistByIds(Long[] blacklistIds);

    /**
     * 删除黑名单信息
     * 
     * @param blacklistId 黑名单ID
     * @return 结果
     */
    public int deleteCompanyVoiceRoboticCallBlacklistById(Long blacklistId);

    int selectCompanyCallBlacklistByMobile(String mobile);

    int changeStatus(CompanyVoiceRoboticCallBlacklist companyVoiceRoboticCallBlacklist);

    /**
     * 外呼前检查是否命中黑名单
     */
    CompanyVoiceRoboticCallBlacklistCheckVO checkBlacklist(CompanyVoiceRoboticCallBlacklistCheckParam companyVoiceRoboticCallBlacklistCheckParam);
}
