package com.fs.sop.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.fs.sop.domain.QwSopTempContent;
import com.fs.sop.domain.QwSopTempDay;
import com.fs.sop.domain.QwSopTempVoice;

import java.util.List;

/**
 * 模板对应的销售语音文件Service接口
 *
 * @author fs
 * @date 2025-02-13
 */
public interface IQwSopTempVoiceService extends IService<QwSopTempVoice>{
    /**
     * 查询模板对应的销售语音文件
     *
     * @param id 模板对应的销售语音文件主键
     * @return 模板对应的销售语音文件
     */
    QwSopTempVoice selectQwSopTempVoiceById(Long id);

    /**
     * 查询模板对应的销售语音文件列表
     *
     * @param qwSopTempVoice 模板对应的销售语音文件
     * @return 模板对应的销售语音文件集合
     */
    List<QwSopTempVoice> selectQwSopTempVoiceList(QwSopTempVoice qwSopTempVoice);

    /**
     * 新增模板对应的销售语音文件
     *
     * @param qwSopTempVoice 模板对应的销售语音文件
     * @return 结果
     */
    int insertQwSopTempVoice(QwSopTempVoice qwSopTempVoice);

    /**
     * 修改模板对应的销售语音文件
     *
     * @param qwSopTempVoice 模板对应的销售语音文件
     * @return 结果
     */
    int updateQwSopTempVoice(QwSopTempVoice qwSopTempVoice);

    /**
     * 批量删除模板对应的销售语音文件
     *
     * @param ids 需要删除的模板对应的销售语音文件主键集合
     * @return 结果
     */
    int deleteQwSopTempVoiceByIds(Long[] ids);

    /**
     * 删除模板对应的销售语音文件信息
     *
     * @param id 模板对应的销售语音文件主键
     * @return 结果
     */
    int deleteQwSopTempVoiceById(Long id);


    /**
     * 同步语音
     * @param sopId          sopID
     * @param companyUserIds 销售ID和销售公司ID
     *                       数据结构实例：[[销售ID, 销售公司ID],[销售ID, 销售公司ID],[销售ID, 销售公司ID]]
     */
    void synchronous(String sopId, List<List<Long>> companyUserIds);

    List<QwSopTempVoice> getVoice(Long companyUserId, Long companyId, String tempId, Long rulesId);
    List<QwSopTempVoice> getVoiceByText(Long companyUserId, List<String> textList);

    void synchronousTemp(List<QwSopTempContent> collect, QwSopTempDay day);

    List<QwSopTempVoice> listByTempIdAndCompanyId(String tempId, List<Long> longs);
}
