package com.ruoyi.cc.service;

import java.util.List;
import com.ruoyi.cc.domain.CcOutboundCdr;

/**
 * 外呼记录Service接口
 * 
 * @author ruoyi
 * @date 2024-12-22
 */
public interface ICcOutboundCdrService 
{
    /**
     * 查询外呼记录
     * 
     * @param id 外呼记录主键
     * @return 外呼记录
     */
    public CcOutboundCdr selectCcOutboundCdrById(String id);

    /**
     * 查询外呼记录列表
     * 
     * @param ccOutboundCdr 外呼记录
     * @return 外呼记录集合
     */
    public List<CcOutboundCdr> selectCcOutboundCdrList(CcOutboundCdr ccOutboundCdr);

    /**
     * 新增外呼记录
     * 
     * @param ccOutboundCdr 外呼记录
     * @return 结果
     */
    public int insertCcOutboundCdr(CcOutboundCdr ccOutboundCdr);

    /**
     * 修改外呼记录
     * 
     * @param ccOutboundCdr 外呼记录
     * @return 结果
     */
    public int updateCcOutboundCdr(CcOutboundCdr ccOutboundCdr);

    /**
     * 批量删除外呼记录
     * 
     * @param ids 需要删除的外呼记录主键集合
     * @return 结果
     */
    public int deleteCcOutboundCdrByIds(String ids);

    /**
     * 删除外呼记录信息
     * 
     * @param id 外呼记录主键
     * @return 结果
     */
    public int deleteCcOutboundCdrById(String id);

    List<CcOutboundCdr> selectCcOutboundCdrYlrzList(CcOutboundCdr outboundCdr);

    List<CcOutboundCdr> selectCcOutboundCdrByIds(List<String> ids);

    /**
     * 按 uuid 批量查询并合并断线重连分段：每个 uuid 仅返回一条。
     * 合并规则：以 end_time 最晚一条为底；start_time、answered_time 取最早一条；time_len、time_len_valid 累加。
     */
    List<CcOutboundCdr> selectMergedCcOutboundCdrByUuids(List<String> uuids);
}
